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