[Haskell-cafe] ANN: monad-bool 0.1
Conrad Parker
conrad at metadecks.org
Wed Jan 23 01:34:10 CET 2013
On 23 January 2013 08:04, John Wiegley <johnw at fpcomplete.com> wrote:
> monad-bool implements a pair of Boolean monoids and monads, to support
> short-circuiting, value-returning computations similar to what Python and Ruby
> offer with their native && and || operators.
> ...
> Use 'onlyIf' with AndM and AndMT to guard later statements, which are only
> evaluated if every preceding 'onlyIf' evaluates to True. For example:
>
> foo :: AndM Int
> foo = do onlyIf (True == True)
> return 100
> onlyIf (True == True)
> return 150
> onlyIf (True == False)
> return 200
>
> When run with `evalAndM foo (-1)` (where (-1) provides a default value), 'foo'
> returns 150.
>
> Use 'endIf' with OrM and OrMT to chain statements, which are only executed if
> every preceding 'endIf' evaluated to False. For example:
>
> bar :: OrM Int
> bar = do endIf (True == False)
> return 100
> endIf (True == False)
> return 150
> endIf (True == True)
> return 200
John,
these sound powerful, but how would I do something esoteric like
if/elseIf/endIf ?
Conrad.
More information about the Haskell-Cafe
mailing list