
And here's the arrow implementation
(pred1 &&& pred2) >>> uncurry (&&)
You need Data.Tuple (for uncurry) and Data.Arrow.
On Mon, Nov 16, 2015 at 5:40 PM, Frerich Raabe
On 2015-11-16 12:44, Mark Carter wrote:
Suppose I want to use an argument twice, as for example in the expression: (\x -> (pred1 x) and (pred2 x))
Is there a shorter way of doing this?
I suppose you meant to write '&&' instead of 'and'?
You can write it in an applicative style as
(&&) <$> pred1 <*> pred2
If you like, you can shorten that a bit using 'liftA2' as
liftA2 (&&) pred1 pred2
but I personally tend to like the former version better.
-- Frerich Raabe - raabe@froglogic.com www.froglogic.com - Multi-Platform GUI Testing
_______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners