Curried function (source code)

= Curried function
{title2=`a -> b -> c` versus `(a,b) -> c`}

In <functional programming>, <currying> represents a <function> of several arguments as successive one-argument <functions>. In <Haskell>, arrows associate to the right: `a -> b -> c` means `a -> (b -> c)`. Supplying an argument of type `a` therefore returns a <function> of type `b -> c`, while a function of type `(a,b) -> c` expects a <tuple>. <Uncurrying> converts the first representation to the second.