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

Re: a meta-comment

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

>First, does anyone want to speak up on Alternative 1 vs Alternative 2?
>My current inclination is Alternative 1, and unless there is ground-swell
>of support for Alternative 2, the final SRFI will use Alternative 1.

I am in favor of Alternative 1.  It is symmetric with what we already
have, and for SET-CAR!, VECTOR-SET!, and so on, Alt.1 is clearly most

For things like ARRAY-SET! (see eg Alan Bawden's code in SLIB) Alt.2
seems more reasonable because ARRAY-SET! takes a variable number of
arguments, and, as the proposal already states, it's a little messy,
both to code and performance-wise, to take the value as the last
argument.  However, using constructions like CASE-LAMBDA it becomes much
less messy (at least performance-wise) to write setters that take the
value as the last argument, which I think is a point in favor of Alt.1.

As it happens, _neither_ alternative is right for ARRAY-SET! as the
latter is written now, because it takes array first, then value, then
subscripts.  I.e., (set! (setter array-ref) array-set!) won't work with
either alternative.  That situation will probably be common when it is
"natural" to put the value before subscript-type expressions but after
the object being assigned to.