Boost logo

Boost :

From: Joel (djowel_at_[hidden])
Date: 2005-01-10 19:40:28


David Abrahams wrote:
> Joel wrote:
>
>
>>I believe I patterned this after FC++:
>>
>>http://www.cc.gatech.edu/~yannis/fc++/currying.html
>>http://www.cc.gatech.edu/~yannis/fc++/currying-tutorial.txt
>>
>>Are you saying that Brian and Yannis also got it wrong?
>
>
> They must have. Which is strange, because it was Brian who set me
> straight about this issue.

A google search for ["partial function application" currying]
gives me lots of links that assume the equivalence:

"partial function application (currying)..."
"Partial function application is like super currying..."
"allows currying, or partial function application..."
"Currying arguments allows partial function application..."
"partial function application (currying)..."
"This is sometimes called partial function application..."
"function application, colloquially known as currying..."
"The technique is also related to currying, the
     partial function application mechanism in the
     functional programming domain..."
"currying means partial function application..."
"currying [Barendregt, 1993], or partial function application..."

... the list goes on.

Even the boost lambda library mentions "currying":
"currying, and using the sig template to specify the return..."

There's no currying in BLL, at least not by the definition you
gave.

The wikipedia has an even stricter definition:

'''
currying is the technique of transforming a function
taking multiple arguments into a function that takes a
single argument (the first of the arguments to the original
function) and returns a new function which takes the
remainder of the arguments and returns the result.
'''

Here, it is only the first argument. If we follow this
strict definition, I dare say that most (all?) modern languages
(even Haskell) misuse the term "curry" and that the strict
definition has little value now and should probably be
modernized. Heck, Moses Schönfinkel invented that in 1924!

Regards,

-- 
Joel de Guzman
http://www.boost-consulting.com
http://spirit.sf.net

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk