[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Implementing it as a procedure

This page is part of the web mail archives of SRFI 26 from before July 7th, 2015. The new archives for SRFI 26 contain all messages, not just those from before July 7th, 2015.


> 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

then become

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