[Haskell-cafe] Functions that return functions

Ross Mellgren rmm-haskell at z.odi.ac
Sun Apr 12 21:23:34 EDT 2009


Under the covers of syntax they only have one parameter, but you can  
write curried lambdas or functions easily:

\ a b -> a + b

which is equivalent to

\ a -> \ b -> a + b

and also equivalent to the "normal" function syntax

f a b = a + b

or

f a = \ b -> a + b

-Ross

On Apr 12, 2009, at 9:09 PM, michael rice wrote:

> My question was meant in the context of the makeVerifier function,  
> which is passed a lambda expression. It's my understanding that  
> Haskell lambda expressions can have only a single parameter, which  
> is why I changed the function parameter to a pair, (i,d).
>
> How would it be done otherwise?
>
> Michael
>
>
> --- On Sun, 4/12/09, Daniel Fischer <daniel.is.fischer at web.de> wrote:
>
> From: Daniel Fischer <daniel.is.fischer at web.de>
> Subject: Re: [Haskell-cafe] Functions that return functions
> To: "michael rice" <nowgate at yahoo.com>
> Cc: haskell-cafe at haskell.org
> Date: Sunday, April 12, 2009, 7:20 PM
>
> Am Montag 13 April 2009 01:09:22 schrieb michael rice:
> > Example please.
> >
> > Michael
> >
>
> Curried:
>
> f :: a -> b -> c
>
> amenable to partial application.
>
> Uncurried:
>
> g :: (a,b) -> c
>
> not easy to apply partially.
>
> The Prelude contains
>
> curry :: ((a,b) -> c) -> (a -> b -> c)
>
> uncurry :: (a -> b -> c) -> ((a,b) -> c)
>
> to convert if needed.
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20090412/b91f720a/attachment-0001.htm


More information about the Haskell-Cafe mailing list