On 23 January 2013 08:04, John Wiegley <jo...@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. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe