----- Original Message ----- From: "Eduardo Cavazos" <wayo.cava...@gmail.com>


Very close! Currying a procedure means to transform it from one which takes N arguments (where N>1) to another which take 1 argument and that produces a procedure which takes N-1 arguments, etc... if the procedure already takes only 1 argument, you return it.

The curry in the the (smart-curry) library you provided eventually returns a procedure of zero arity.



I was thinking as I was allowing a 'terminating condition', the code could be expanded to make use of case-lambda and variable arity.

In IronScheme 'procedure-arity' could return more than 1 value for case-lambda, and returns inexact numbers for variable arity. One value each for case, even implementation specific 'overloads' for 'optimized' cases, eg (+ n ...) might return (values 1 2 2.0).

Cheers

leppie

Reply via email to