how do I abstract this pattern ?
HP Wei
hp at rentec.com
Wed May 21 13:25:15 EDT 2008
Thanks to all who has replied in such a short time.
>From your reponses, I looked at the definition of `mplus`
Nothing `mplus` ys = ys
xs `mplus` _ = xs
It catches the essence of what I am trying to do!
Later, if pn grows in number, I can scale up by using
some-kind-of-zero with some higher order foldx-like functions.
Thanks a lot,
--hp
On Wed, 21 May 2008, HP Wei wrote:
>
> Suppose p1, p2, p3 are 3 predicates
> that take an input -- say, a String.
> They return either (True, result)
> or False.
>
> I want to get an effect like in this expression:
>
> case p1 s of
> (True, r) -> r
> False -> case p2 s of
> (True, r) -> r
> False -> case p3 s of
> (True, r) -> r
> False -> none
>
> Is this a job for Maybe monad ?
> How do I do that ?
>
> Thanks
> HP
>
More information about the Glasgow-haskell-users
mailing list