MathGroup Archive 2001

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

Search the Archive

RE: Re: Replacing Parts of a List

  • To: mathgroup at smc.vnet.net
  • Subject: [mg28826] RE: [mg28771] Re: Replacing Parts of a List
  • From: "Wolf, Hartmut" <Hartmut.Wolf at t-systems.de>
  • Date: Tue, 15 May 2001 00:58:58 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Roger,

things are a little bit tricky, since symbol[[indices]] is a special form in
Mathematica. Trying to define Upvalues for Subscript didn't work for
Set[Part[..]]. So an idea would be to modify parsing of a subcripted
expression, and convert that to special symbols:

In[1]:=
MakeExpression[SubscriptBox[x_, y_], StandardForm] := 
  MakeExpression[RowBox[{StringJoin["\[Section]", x, "\[Section]", y]}], 
    StandardForm]

In[2]:= \!\(x\_y\  = \ {1, 2, 3}\)
Out[2]= {1, 2, 3}

In[3]:= \!\(x\_y[\([3]\)] = 10\)
Out[3]= 10

In[4]:= \!\(x\_y\)
Out[4]= {1, 2, 10}

so any piece of input Substring[x,y] is converted to an internal symbol §x§y
(which will not come to your eye, if you give it a value at definition time,
as done above).

Try whether this will suffice to your purpose. Alternatively I've heard of a
Package "Symbolize", which  will do this (?) and other things, but I have
neither used that nor studied.

Good luck, -- Hartmut

> -----Original Message-----
> From: Roger Jones [mailto:rmj at SLAC.Stanford.EDU]
To: mathgroup at smc.vnet.net
> Sent: Saturday, May 12, 2001 7:37 AM
> To: mathgroup at smc.vnet.net
> Subject: [mg28826] [mg28771] Re: Replacing Parts of a List
> 
> 
> To clarify
> 
> In[1]:=Subscript[x, y] = {1, 2, 3}
> 
> Out1]={1, 2, 3}
> 
> To replace the third element I must use :
> 
> In[2]:=Subscript[x, y] = ReplacePart[Subscript[x, y], 10, 3]
> 
> Out[2]={1, 2,10}
> 
> So that now Subscript[x, y] gives:
> 
> In[3]:=Subscript[x, y]
> 
> Out[3]={1, 2, 10}
> 
> 
> This is unwieldy and I was hoping for a little more condensed 
> notation.
> However,
> when using subscripts this appears appears to be the simplist notation
> available.
> 
> -Roger Jones
> 
> 



  • Prev by Date: Re: Re: Problem overriding simple built-in functions
  • Next by Date: Re: Det[]
  • Previous by thread: Re: Replacing Parts of a List
  • Next by thread: Win2000