[Haskell-beginners] Is there an idiom for this?

Frerich Raabe raabe at froglogic.com
Mon Nov 16 12:10:44 UTC 2015

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 at froglogic.com
www.froglogic.com - Multi-Platform GUI Testing

More information about the Beginners mailing list