MathGroup Archive 2006

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

Search the Archive

RE: Mapping Functions That Take More Than One Argument


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



  • Prev by Date: Re: Program to calculate rational function with imbedded continued fraction
  • Next by Date: Mac, Mathematica, and AuthorTools: Another suffix gotcha
  • Previous by thread: RE: Mapping Functions That Take More Than One Argument
  • Next by thread: Re: Mapping Functions That Take More Than One Argument