[Haskell-beginners] Re: Function composition with more than 1 parameter

Brandon S. Allbery KF8NH allbery at ece.cmu.edu
Sat Oct 25 19:22:58 EDT 2008

On 2008 Oct 25, at 18:44, Glurk wrote:
>> Or, does it take the only valid parameter I give it, the a, and  
>> then form a
> function out of this (a==), and then compose this new function with  
> filter,
> which does take a function of this new type. Then, there is one  
> parameter
> left, [a], which is what this new function needs...and so it all  
> works out !

This is it exactly.

> Why doesn't it try to take the 2 parameters for (==)

In reality there are no two-parameter functions.  They are actually  
single-parameter functions which return functions.  Thus only one  
argument will ever be consumed by a particular application.

Symbolically:  (\a b -> f a b) = \a -> (\b -> f a b) taking argument a  
and returning the function (\b -> f a b) with a having whatever value  
it was given in the first application (in other languages this is  
often referred to as a closure).

brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university    KF8NH

More information about the Beginners mailing list