
At 2001-08-07 14:20, Mark Carroll wrote:
Is there an exemple of such a function in the Haskell language ?
Most certainly. For instance, we can define:
f :: Integer -> Integer -> Integer f x y = x + y
g = f 1
That's not really currying, is it? This is currying: f :: (Integer,Integer) -> Integer f (x,y) = x + y g :: Integer -> Integer g y = f (1,y) -- g is f with the first argument curried with 1. h :: Integer -> Integer h x = f (x,1) -- h is f with the second argument curried with 1. And these are the functions for the first of two arguments: curry :: ((a,b) -> c) -> (a -> b -> c) curry f a b = f (a,b) uncurry :: (a -> b -> c) -> ((a,b) -> c) uncurry f (a,b) = f a b ... so that we can define g = curry f 1 -- Ashley Yakeley, Seattle WA