MathGroup Archive 2013

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: list mutability (very basic question)

  • To: mathgroup at smc.vnet.net
  • Subject: [mg131704] Re: list mutability (very basic question)
  • From: Bob Hanlon <hanlonr357 at gmail.com>
  • Date: Sun, 22 Sep 2013 02:45:21 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-outx@smc.vnet.net
  • Delivered-to: mathgroup-newsendx@smc.vnet.net
  • References: <20130921083830.751226A65@smc.vnet.net>

You are missing part of the quote. It reads:

"It is important to understand that ReplacePart always creates a new
list.It does not modify a list that has already been assigned to a symbol
the way m[[...]] = val does."

Set has attribute HoldFirst which prevents x[[1]] in your second example
from turning into {0}[[1]] (your first example) and causing the error


Set::setps: {0} in the part assignment is not a symbol. >>



Attributes[Set]


{HoldFirst, Protected, SequenceHold}



Bob Hanlon




On Sat, Sep 21, 2013 at 4:38 AM, Alan <alan.isaac at gmail.com> wrote:

> I just realized that I am unclear on a very basic point: in what ways are
> lists mutable?
>
> Example:
> {0}[[1]]=1; (* a. this is an error *)
> x={0}
> x[[1]]=1 (* b. this is not an error *)
> ReplacePart[x, 1 -> 2]  (* c. this is differently not an error *)
>
>
> http://reference.wolfram.com/mathematica/tutorial/ManipulatingListsByTheirIndices.html
> It is important to understand that ReplacePart always creates a new list.
> It does not modify a list that has already been assigned to a symbol the
> way does.
>
> I think this means that after b. (i.e., Set[Part[x,1],1]) that x still
> references the same location in memory. If so, why is a. an error? (I
> realize that someone will think that saying that {0} is not a L-value will
> be a helpful answer, and perhaps it should be, but I'm looking for a
> different angle on the answer.)
>
> Thanks,
> Alan Isaac
>
>



  • Prev by Date: Re: plotting integrals
  • Next by Date: Re: Import CSV can not understand string correctly
  • Previous by thread: list mutability (very basic question)
  • Next by thread: Re: list mutability (very basic question)