MathGroup Archive 2006

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

Search the Archive

Re: Mapping Functions That Take More Than One Argument


Gregory Lypny wrote:
> Hello everyone,
> 
> How can I map a functions onto sub-lists when the function takes more  
> than one argument.  I can't seem to stumble upon the right syntax.
> 
> Here's a list of three sub-lists.
> 
> {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
> 
> I want to drop the first element of each sub-list, that is, 1 from  
> the first, 4 from the second, and 7 from the third.
> 
> Drop[{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}, 1]
> 
> gives me
> 
> {{4, 5, 6}, {7, 8, 9}},
> 
> which is what I expected (I'm learning) but not what I want.  So, how  
> do I apply Drop to each sub-list?
> 
> Regards,
> 
> 	Gregory
> 
Hi Gregory,

Use the Map function to go down one level by default. Some alternatives 
are also listed.

In[1]:=
lst = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

In[2]:=
(Drop[#1, 1] & ) /@ lst

Out[2]=
{{2, 3}, {5, 6}, {8, 9}}

In[3]:=
Rest /@ lst

Out[3]=
{{2, 3}, {5, 6}, {8, 9}}

In[4]:=
(Delete[#1, 1] & ) /@ lst

Out[4]=
{{2, 3}, {5, 6}, {8, 9}}

In[5]:=
lst /. {(x_)?AtomQ, y__} :> {y}

Out[5]=
{{2, 3}, {5, 6}, {8, 9}}

Cheers,
Jean-Marc


  • Prev by Date: Re: Mapping Functions That Take More Than One Argument
  • Next by Date: Re: Re: Differentiation problem/bug?
  • Previous by thread: Re: Mapping Functions That Take More Than One Argument
  • Next by thread: Re: Mapping Functions That Take More Than One Argument