"Elvis" operator (?:) as a reverse infix form of "fromMaybe"

Nikita Volkov nikita.y.volkov at gmail.com
Sat Oct 12 12:40:05 UTC 2013


I suggest to include this operator in "Data.Maybe" and "Prelude".

*Implementation:*

    (?:) :: Maybe a -> a -> a
    maybeA ?: b = fromMaybe b maybeA

*Use cases:*

    1.
        maybeValue ?: error "Value is unexpectedly empty. This is a bug."

    instead of

        fromMaybe (error "Value is unexpectedly empty. This is a bug.")
maybeValue

    2.
        maybeA ?: maybeB ?: c

    instead of

        fromMaybe (fromMaybe c maybeB) maybeA

*Name collisions:*

    Hayoo search gives only 6 collisions with 5 hardly fundamental
libraries.



* The nickname and the operator itself are inspired by the ones from Groovy
language.

** The symbols of the operator are a reminder of plain old ternary
construct.

*** To understand the nickname look at the operator as on emoticon.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20131012/2b49a834/attachment.html>


More information about the Libraries mailing list