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@web.de> wrote:

From: Daniel Fischer <daniel.is.fischer@web.de>
Subject: Re: [Haskell-cafe] Functions that return functions
To: "michael rice" <nowgate@yahoo.com>
Cc: haskell-cafe@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.