Re: Array
- To: mathgroup at smc.vnet.net
- Subject: [mg69239] Re: [mg69220] Array
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Sun, 3 Sep 2006 23:46:23 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
On 3 Sep 2006, at 06:39, Bruce Colletti wrote:
> The command:
>
> {A[1], A[2], A[3]} = {1, 2, 3}
>
> assigns a value to each A-variable. However, the command:
>
> Array[A,3] = {1,2,3}
>
> generates an error message.
>
> What is the difference between the two lines?
>
> Thankx.
>
> Bruce
>
Set (=) works in a special way when you make assignments to lists, as
stated in the Help:
?Set
"lhs = rhs evaluates rhs and assigns the result to be the value \
of lhs. From then on, lhs is replaced by rhs whenever it appears.
{l1, l2, \
... } = {r1, r2, ... } evaluates the ri, and assigns the results to
be the \
values of the corresponding li.
This is why your first example works. However, since Set does not
evaluate its first argument, it tries to assign a rule to the symbol
Array, which it can't do since Array is Protected. Hence what you
should use is:
Evaluate[Array[A,3]]={1,2,3}
which will work exactly as the first example.
Andrzej Kozlowski