Re: To apply a function to a List
- To: mathgroup at smc.vnet.net
- Subject: [mg65615] Re: To apply a function to a List
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Tue, 11 Apr 2006 04:04:23 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <e1cusv$enp$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Francisco Javier wrote: > Dear all, > > Let f, l be a function and a list respectively. How can we do > > Table[f[list[[n]]],{n,1, Length[list]}] > > in another way? > > Thanks. > In general, the built-in function *Map* (or /@) does what you are looking for: In[1]:= lst={a,b,c}; Table[f[lst[[n]]],{n,1,Length[lst]}] Out[2]= {f[a],f[b],f[c]} In[3]:= f/@lst Out[3]= {f[a],f[b],f[c]} In[4]:= lst={0,Pi/2,Pi,3Pi/2,2Pi}; In[5]:= Sin/@lst Out[5]= {0,1,0,-1,0} Since the *Sin* function has the attribute *Listable*, it is automatically mapped In[6]:= Attributes[Sin] Out[6]= {Listable,NumericFunction,Protected} In[7]:= Sin[lst] Out[7]= {0,1,0,-1,0} Or equivalently in prefix notation In[8]:= Sin@lst Out[8]= {0,1,0,-1,0} Or in postfix notation In[9]:= lst//Sin Out[9]= {0,1,0,-1,0} You can also do fancy things with the *Apply* built-in function In[10]:= Sin@@{lst} Out[10]= {0,1,0,-1,0} You can map pure functions too In[11]:= Sin[#]+Cos[#]&/@lst Out[11]= {1,1,-1,-1,1} Hope this helps, Jean-Marc