MathGroup Archive 2005

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

Search the Archive

Re: Applying function to nested lists

  • To: mathgroup at
  • Subject: [mg57919] Re: Applying function to nested lists
  • From: David Bailey <dave at>
  • Date: Sun, 12 Jun 2005 04:34:49 -0400 (EDT)
  • References: <d8e525$gnl$>
  • Sender: owner-wri-mathgroup at

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

The problem here is that not all your numbers are at the same level with 
respect to the lists (otherwise, you could just use Map with a suitable 
levelspec), so one solution is to let f apply everywhere and then prune 
out the cases where f is applied to a list:

Map[f,x,\[Infinity]]//. f[x_List]->x

If f is actually a function that does something, use a function g that 
has no definition, and then replace g with f.

This will work fine providing the data in your nested lists is simple 
numbers or variables, but if you might have algebraic expressions in 
there, then you would need a more complicated approach to avoid 
inserting f inside the expressions.

David Bailey

  • Prev by Date: Re: saving the kernel
  • Next by Date: Re: Mathematica equivalent complexplot
  • Previous by thread: Re: Applying function to nested lists
  • Next by thread: Re: Reducing memory for big data sets