# Binding of list slice elements

```Hi,

my (\$a, \$b, \$c) = <a b c>;

my \$also_a := (\$a,\$b,\$c)[0];
\$also_a eq "a";  # correct?
\$also_a = "A";   # does not die?
\$a eq "A";       # true?```
```
my \$also_b = "b";
(\$a,\$b,\$c)[1] := \$also_b;
\$b eq "b";       # true?
\$b = "B";        # does not die?
\$also_b eq "B";  # true?

Note that if my assumptions are correct, the following expressions must
be true as well (also see [1]), unless there's some additional magic.

(\$a,\$b,\$c)[0] =:= \$a;
(\$a,\$b,\$c)[1] =:= \$b;
(\$a,\$b,\$c)[2] =:= \$c;

Thus:

(\$a,\$b,\$c)[1] = 42;  # same as \$b = 42

And:

(0,1,2)[1]  = 42;  # dies ("cannot modify constant")
(0,1,2)[1] := 42;  # dies ("cannot rebind constant")

my @foo = <a b c>;
my @bar = <d e f>;
(@foo,@bar)[2] =:= @foo[2];  # true
(@foo,@bar)[3] =:= @bar[0];  # true

(@foo,@bar)[2]  = 42;  # same as @foo[2]  = 42
(@foo,@bar)[3]  = 42;  # same as @bar[0]  = 42

(@foo,@bar)[2] := 42;  # same as @foo[2] := 42
(@foo,@bar)[3] := 42;  # same as @bar[0] := 42

(These questions were motivated by Flavio's work in progress [2] ("A
draft on the runtime view of how Lazy things (like Arrays) work").)

--Ingo

[1] http://www.nntp.perl.org/group/perl.perl6.language/22924
[2] http://svn.openfoundry.org/pugs/docs/notes/laziness.txt

```