Ketil Z. Malde
19 Mar 2002 08:48:12 +0100
Koen Claessen <firstname.lastname@example.org> writes:
> Suppose I have a function f which is defined to
> have 3 arguments:
> f x y z = ...
> Now, when I want to partially apply f to two arguments, say
> 1 and 2, I can say this:
> ... (f 1 2) ...
> However, if I want to leave out the middle argument, I have
> to say:
> ... (\y -> f 1 y 3) ...
> And, similarly, for the first one:
> ... (\x -> f x 2 3) ...
> This seems rather ugly, since the order of arguments in a
> function plays a crucial role. For example, the map function
> takes the list as its second argument, since it is so much
> more common to partially apply map with the function rather
> than the list.
Prelude> let f = flip map [1..]
Prelude> take 10 $ f (+1)
You knew this, of course, and I suppose it doesn't scale well to three
or more arguments.
If I haven't seen further, it is by standing in the footprints of giants