RE: List manipulation question
- To: mathgroup at smc.vnet.net
- Subject: [mg15907] RE: [mg15852] List manipulation question
- From: "ELLIS, Luci" <EllisL at rba.gov.au>
- Date: Wed, 17 Feb 1999 23:33:47 -0500
- Sender: owner-wri-mathgroup at wolfram.com
Maarten: Try using a pair of replacement rules: Swap23[list_?VectorQ]:= list /. {list[[2]]->list[[3]],list[[3]]->list[[2]]} The only problem you might have with this is if there are other elements in the list with exactly the same values as the second and third parts (but this is unlikely with real numbers). Regards, Luci ____________________________________________________ Luci Ellis ph:61-2-9551-8881 Acting Senior Economist fx:61-2-9551-8833 Financial & Monetary Conditions ellisl at rba.gov.au Economic Analysis Department GPO Box 3947 Reserve Bank of Australia Sydney NSW 2001 -----Original Message----- From: Maarten.vanderBurgt at icos.be [mailto:Maarten.vanderBurgt at icos.be] To: mathgroup at smc.vnet.net Subject: [mg15907] [mg15852] List manipulation question *** This E-Mail has been checked by MAILsweeper *** Dear all, In the following piece of code I define a function Swap23 which is ment to swap elements 2 and 3 in a list. Executing the function on a simple list I get an error. Why do I get this error? Why do I not get this error when I execute the commnad from Swap23 "by hand" as is shown in In[4]? Thanks for any help Maarten van der Burgt Icos Vision Systems Leuven Belgium In[1]:=Swap23[L_List]:=Module [ {temp}, temp = L[[2]]; L[[2]]=L[[3]]; L[[3]] =temp; L ] In[2]:= mylist = {1,2,3}; In[3]:= Swap23[mylist] Set::"setps": "\!\({1, 2, 3}\) in assignment of part is not a symbol." Set::"setps": "\!\({1, 2, 3}\) in assignment of part is not a symbol." Out[3]= {1,2,3} In[4]:= temp = mylist[[2]]; mylist[[2]]=mylist[[3]]; mylist[[3]] =temp; mylist Out[4]= {1,3,2}