On Wed, May 27, 2009 at 1:15 PM, Derick Eddington <[email protected]> wrote: > On Wed, 2009-05-27 at 12:02 +0300, Abdulaziz Ghuloum wrote: >> It's bizarre, but it has to be true! :-) > > When I see (curried-lambda (a b) ---), I'm expecting a procedure which > needs two arguments. When I see (curried-lambda () ---), I'm expecting > a procedure which needs zero arguments; I'm not expecting to get the > value(s) returned from calling the procedure. Same for define-curried. > But whatever. To each their own Scheme planet.
My mind is warped by SML when it comes to currying, so for me a function is always a function with a *single* argument. When I see (curried-lambda (a b) ---) and I see two formals, I expect to get a second order function with *one* argument; when I see (curried-lambda () ---) I expect to see a zero-order function - i.e. an expression - and its would-be single argument disappear. At least, this is the way I look at it; I am sure there is some formal work on the subject, but I lack any theoretical expertise on higher order functions ;)
