Re: Applying function to nested lists
- To: mathgroup at smc.vnet.net
- Subject: [mg57892] Re: Applying function to nested lists
- From: Curt Fischer <tentrillion at gmail.NOSPAM.com>
- Date: Sun, 12 Jun 2005 04:34:14 -0400 (EDT)
- References: <d8e525$gnl$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Kerry Kim wrote: > Hello, > > I'm trying to get Mathematica to do the following: > > Suppose > x = {{1,2,3},{{4,5,6},7,8},9} > f = some function > > How can I get f applied to each element of x but with the list structure > intact? I.e. I want something that generates: > > {{f[1],f[2],f[3]},{{f[4],f[5],f[6]},f[7],f[8]},f[9]} > > Thank you! > -Kerry Kim One way is just to tell Mathematica to Map your function across any List it comes across. In the example below I've left f undefined for any inputs except lists, but you could easily define it for other inputs with an f[n_Integer]:= <formula> type of statement, for integers, for example. In[1]:= x = {{1, 2, 3}, {{4, 5, 6}, 7, 8}, 9}; In[2]:= f[n_List] := f /@ n In[3]:= f[x] Out[3]= {{f[1], f[2], f[3]}, {{f[4], f[5], f[6]}, f[7], f[8]}, f[9]} You can accomplish the same thing by changing the attribute of your function to Listable, a course which I'm sure other posts will provide more details on. -- Curt Fischer