multiple assignment stuff in src/mlisp.lisp



["Robert Dodier" <robert.dodier at gmail.com>, Sat, 24 Feb 2007 14:20:36 -0700]:
> I've merged the multiple-assignment code from share/contrib/defstruct.lisp
> into src/mlisp.lisp.
...

To me, this all looks very usable.  However:

> (%i13) a : [1, 2, 3, 4];
> (%o13)                    [1, 2, 3, 4]
> (%i14) (i : 2, [i, a[i]] : [4, 11]);
> (%o14)                       [4, 11]
> (%i15) a;
> (%o15)                    [1, 2, 3, 11]

This I find a bit surprising; based on the earlier examples I would
have expected a => [1, 11, 3, 4], i.e., I thought that the expressions
on the left hand side are evaluated "in parallel", with later
assignments taking precedence over earlier ones (as demonstrated by
[i, i] : [1, 2]).

This policy would not affect the outcome of %i18, by the way.

Best regards,

Albert.