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

Christopher Done chrisdone at gmail.com
Sat Oct 12 12:48:47 UTC 2013


I've never considered writing fromMaybe painful, personally.

On 12 October 2013 14:40, Nikita Volkov <nikita.y.volkov at gmail.com> wrote:
> 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.
>
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries
>


More information about the Libraries mailing list