[Haskell-beginners] Disjunction

Russ Abbott russ.abbott at gmail.com
Fri Dec 10 01:02:11 CET 2010


I recently was writing code long these lines.

f x = p1 x || p2 x || ... || pn x

I would have liked to write that in pointfree form but couldn't find a
library function to do it.

I created this.

disj :: [a -> Bool] -> a -> Bool
disj ps = (\x -> or $ map ($x) ps)

disj2 p1 p2 = disj [p1, p2]
disj3 p1 p2 p3 = disj [p1, p2]
disj4 p1 p2 p3 p4 = disj [p1, p2]
...

With that I can write my function as follows.

f = disj pi p2 p3 ... pn

Is there a standard way to do this?
*
-- Russ*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20101209/f73a7b2d/attachment.htm>


More information about the Beginners mailing list