uncurry

uncurry converts a curried function to a function on pairs.

Examples

>>> uncurry (+) (1,2)
3
>>> uncurry ($) (show, 1)
"1"
>>> map (uncurry max) [(1,2), (3,4), (6,8)]
[2,4,8]
Caution: See unzip.
Convert a curried function to a function on strict pairs.
uncurry converts a curried function to a function on pairs.

Examples

>>> uncurry (+) (1,2)
3
>>> uncurry ($) (show, 1)
"1"
>>> map (uncurry max) [(1,2), (3,4), (6,8)]
[2,4,8]
uncurry converts a curried function to a function on pairs.
Beware, uncurry is not compatible with the standard one because it is higher-order and we don't have multiplicity polymorphism yet.
uncurry converts a curried function to a function on pairs.

Examples

>>> uncurry (+) (1,2)
3
>>> uncurry ($) (show, 1)
"1"
>>> map (uncurry max) [(1,2), (3,4), (6,8)]
[2,4,8]
Converts a curried function to a function on a triple.
Uncurries a function expecting three r, g, b parameters.
Caution: See unzip.
mothers little helpers for to much curry
Convert a curried function on Sigma to an uncurried one. Together, currySigma and uncurrySigma witness an isomorphism. (Refer to the documentation for currySigma for more details.)
Like uncurryType, except on a kind level.
Split a type signature by the arrows on its spine. For example, this:
forall a b. (a ~ b) => (a -> b) -> Char -> ()
would split to this:
(a ~ b, [a -> b, Char, ()])
uncurry with no lazy pattern matching for more efficient code.