Re: How to map a list on function

• To: mathgroup at smc.vnet.net
• Subject: [mg97544] Re: How to map a list on function
• From: Helen Read <hpr at together.net>
• Date: Sat, 14 Mar 2009 18:17:57 -0500 (EST)
• References: <gpg18t\$ceh\$1@smc.vnet.net>

```buts wrote:
> Hello,
>
> Could anyone explain me how to do the following:
> I have a long list of integer numbers in groups of four:
>
> list= {{10,3,5,7},{4,6,8,9},{0,8,3,6}, ...... }
>
> or its Flatten version.
>
> How to write a fast function g[list] which does this:
>
> g[list] =x^10*y^3*z^5*u^7 + x^4*y^6*z^8*u^9 + y^8*z^3*u^6+ ...
>
> It should be done many times (say, 10^4-6) on lists with length > 1000, so taking parts is not a good idea.
> How to use Map or similar ?
> Thanks.

Here's one straightforward way to do it. First, define a function gg[t]
that acts on a 4-tuple t.

gg[t_List] := x^t[[1]] y^t[[2]] z^t[[3]] u^t[[4]]

Try this out on a single 4-tuple:

t1={5,4,6,2}

gg[t1]

Now, define a function to Map gg over the list of 4-tuples and Total the
results.

g[list_List] := Total[Map[gg, list]]

Try it on a list of 1000 4-tuples:

list1 = RandomInteger[{0, 15}, {1000, 4}]

g[list1]

--