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

changes to the design of SRFI-26 "Notation for specializing parameters without currying"




Dear readers of this discussion list,

It took some time, but a revision of SRFI-26 will soon be announced by the editors.
This email is to inform you about the changes to the design.

After the revision of March, 1 the following issues have been raised:

1. Should a slot in the operator position be allowed?
2. Should there be arguments after the rest-slot?
3. When should the non-slot expressions be evaluated?

Ad 1.

As Al Petrofsky remarked, Scheme does not treat the operator
position different from the arguments. Therefore, it is most scheme-like
to allow a slot in the operator position, too.

I have included this feature and apologize for overlooking this
in the first place.

Ad 2.

Al Petrofsky also suggested it might be useful to have arguments after
the rest-slot, for example as (cut list a b <...> c).

Although this is certainly possible in a technical sense, I think it is not a
good idea to include this feature in the mechanism. The notion of having
arguments after a variable number of arguments does not really solve
an important problem and therefore violates the "if it's not needed, it's
not needed"-principle. The forthcoming revision does not include it.

Ad 3.

Dale Jordan restarted the discussion on the exact semantics
for the mechanism. He argues that the mechanism is most useful
when the non-slot expressions (the "constants") are evaluated
at the time the procedure is constructed.

After some thought, I decided to provide both versions of the
mechanism, and call them CUT and CUTE (cut-evaluated).
Indeed, I came across examples for both cases, which I usually
have resolved by accepting the performance penalty of CUT.

Please refer to the SRFI-document for details.

Sebastian.

----
Dr. Sebastian Egner
Senior Scientist
Philips Research Laboratories
Prof. Holstlaan 4 (WY2)
5656 AA Eindhoven
The Netherlands
tel:       +31 40 27-43309
fax:      +31 40 27-44918
email: sebastian.egner@xxxxxxxxxxx