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

Reply via email to