Re: Mapping Functions That Take More Than One Argument
- To: mathgroup at smc.vnet.net
- Subject: [mg69897] Re: [mg69864] Mapping Functions That Take More Than One Argument
- From: Gregory Lypny <gregory.lypny at videotron.ca>
- Date: Wed, 27 Sep 2006 06:03:54 -0400 (EDT)
- References: <NDBBJGNHKLMPLILOIPPOOEOAFCAA.djmp@earthlink.net>
Excellent. Thank you, David. My collection of MathGroup tips is
growing and growing.
Gregory
On Tue, Sep 26, 2006, at 10:03 AM, David Park wrote:
> Gregory,
>
> To map a function with more than one argument over a list, use a pure
> function with the other arguments filled in.
>
> testlist = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
>
> Map[Drop[#, 1] &, testlist]
> {{2, 3}, {5, 6}, {8, 9}}
>
> Or
>
> Drop[#, 1] & /@ testlist
> {{2, 3}, {5, 6}, {8, 9}}
>
> Suppose you want to map over two lists, one for each argument?
> Suppose you
> want to drop 1 argument in the first list, 2 arguments in the
> second list,
> and the last argument in the third list. Do it with a pure function
> and
> MapThread.
>
> MapThread[Drop[#1, #2] &, {testlist, {1, 2, -1}}]
> {{2, 3}, {6}, {7, 8}}
>
> David Park
> djmp at earthlink.net
> http://home.earthlink.net/~djmp/
>
>
>
>
>
> From: Gregory Lypny [mailto:gregory.lypny at videotron.ca]
To: mathgroup at smc.vnet.net
>
> 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
>