----- 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