
20 Oct
2009
20 Oct
'09
11:37 a.m.
On Tue, Oct 20, 2009 at 04:29:43PM +0100, Stephen Tetley wrote:
Christian Maeder wrote:
Hoogle did not find a function of type:
(b -> b -> b) -> (a -> b) -> (a -> b) -> a -> b
or (b -> c -> d) -> (a -> b) -> (a -> c) -> a -> d
But maybe such a function is worth being added to Data.Function.
Hello Christian
This is the big Phi or S' combinator. I would certainly second its addition to Data.Function.
sprime p q r s = p (q s) (r s)
But this function already exists in the standard libraries: it is called liftM2/liftA2, specialized to the ((->) e) monad/applicative instance. This is what the rest of the thread has been talking about. -Brent