leledumbo wrote:
If Pascal /had/ to have some sort of multiple assignment, I'd have
thought borrowing an idea from Perl and doing something like
[a, b, c] := (d = e);
would have been minimally acceptable.
I would pick from Lua instead, it looks cleaner. Well... I'll make it
stricter though, by making the number of elements on both side must equal.
e.g.:
a,b,c := v1,v2,v3;
a,b := b,a; // value swapping
I admit that I was- in large part- borrowing from APL. In other words,
if the number of elements on both sides of the expression is the same
you get a one-to-one correspondence but if the RHS only has a single
element it's expanded. APL will also do things comparable with treating
[a, b, c, a] := [1, 2];
as though it really was
[a, b, c, a] := [1, 2, 1, 2];
but that's getting well outside what's reasonable particularly since APL
makes a point of not defining the order of internal operations (i.e. the
final value of a is, at best, implementation-defined).
However as I said: it's not Pascal :-)
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal