Re: Please Help Eliminate My Ignorance
- To: mathgroup at smc.vnet.net
- Subject: [mg118581] Re: Please Help Eliminate My Ignorance
- From: Sseziwa Mukasa <mukasa at gmail.com>
- Date: Tue, 3 May 2011 05:48:20 -0400 (EDT)
On May 2, 2011, at 6:52 AM, Michael Mandelberg wrote:
> Why does Mathematica like the first, but not the second?
>
> 1.
> Clear[x, testp, p];
> test[p_] := Append[p, p[[4]]];
>
>
> 2.
> Clear[x, testp, p];
> test[p_] := x = 1; Append[p, p[[4]]];
>
> Part::partd: Part specification p[[4]] is longer than depth of object.
>>>
>
> Append::normal: Nonatomic expression expected at position 1 in
> Append[p,p[[4]]]. >>
Your second case is a compound statement and the parts are evaluated independently. If you want to assign 1 to x in test wrap it in a scoping construct:
test[p_]:=Block[{},x=1;Append[p,p[[4]]]]
Regards,
Ssezi