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>
- Reply-to: HPR <read at math.uvm.edu>
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]
--
Helen Read
University of Vermont