Re: Mapping Functions That Take More Than One Argument
- To: mathgroup at smc.vnet.net
- Subject: [mg69890] Re: Mapping Functions That Take More Than One Argument
- From: Peter Pein <petsie at dordos.net>
- Date: Wed, 27 Sep 2006 06:03:40 -0400 (EDT)
- References: <efaclu$1uo$1@smc.vnet.net>
Gregory Lypny schrieb:
> 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
>
Hello Gregory,
at least four ways to do this come to my mind immediately; but I would
use only the first one:
lst = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
Rest /@ lst (*or Map[Rest,lst] *)
--> {{2, 3}, {5, 6}, {8, 9}}
Drop[list,1] is the same as Rest[list]:
(Drop[#1, 1] & ) /@ lst
one can use patterns:
lst /. {Except[_List], r___} :> {r}
or become cumbersomely
Transpose[Rest[Transpose[lst]]]
Peter