Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Data.Function.Meld
Description
Map the arguments and return value of functions.
General use:
f $* g1 $$ g2 … $$ gn *$ h = \x1 … xn -> h (f (g1 x1) (g2 x2) … (gn xn))
Examples:
on f g = f $* g $$ g *$ id
comparing f = compare $* f $$ f *$ id
f . g = f $* g *$ id
Work based on Semantic Editor Combinators (Conal Elliot, 20160519).
Documentation
($*) :: (b -> c) -> (a -> b) -> (c -> d) -> a -> d infixl 8
Begin melding.
f $* g1 $$ g2 … $$ gn *$ h = \x1 … xn -> h (f (g1 x1) (g2 x2) … (gn xn))
($$) :: (((b -> c) -> a -> d) -> e) -> (a -> b) -> (c -> d) -> e infixl 7
Continue melding.
f $* g1 $$ g2 … $$ gn *$ h = \x1 … xn -> h (f (g1 x1) (g2 x2) … (gn xn))
(*$) :: (a -> b) -> a -> b infixl 6
Finish melding.
f $* g1 $$ g2 … $$ gn *$ h = \x1 … xn -> h (f (g1 x1) (g2 x2) … (gn xn))