[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Implementing it as a procedure
> Stephan wrote:
> I just realised that, with a small modification,
> curry-which-isnt-curry can be written as an ordinary
> procedure instead of a macro.
Your observation is very nice!
The procedural implementation of curry-which-isnt-curry
may turn out quite useful for Scheme implementations that
do not fully support R5RS (by leaving out macros).
> The only problem is that ordinary procedures cannot
> handle improper lists.
Although the macro-free implementation comes at a certain
performance penalty (running through the arguments for
each and every invocation), it is certainly worth the
effort of changing the syntax of curry-which-isnt-curry.
I have put it on my list of changes for the next iteration
of the SRFI document. The syntax defined in the SRFI will
(curry-which-isnt-curry <proc> <const-or-slot>* [ <...> ])
where curry-which-isnt-curry is shorthand for a symbol chosen from
curry, section, partial-apply, partial, partial-call, specialise
(in the order of appearance) and potentially other proposals for
the very name of the very thing. As a side effect, the new syntax
will make Felix happy because it gets rid of the improper list
notation that causes trouble on some existing Schemes.