Re: Condensed syntax
- To: mathgroup at smc.vnet.net
- Subject: [mg113491] Re: Condensed syntax
- From: Andy <andyr at wolfram.com>
- Date: Sun, 31 Oct 2010 02:07:17 -0500 (EST)
On 10/30/2010 3:38 AM, Themis Matsoukas wrote:
> I have a list of {i,j} values,
>
> ij = Tuples[config, 2]
>
> {{1, 1}, {1, 2}, {1, 3}, {1, 4}, {2, 1}, {2, 2}, {2, 3}, {2, 4}, {3,
> 1}, {3, 2}, {3, 3}, {3, 4}, {4, 1}, {4, 2}, {4, 3}, {4, 4}}
>
> and I want to create a list in which the {i,j} are passed as arguments to a function f[x,y], i.e., {f[1,1], f[1,2],..., f[4,4]}. I can do this using the two-step process:
>
> g[X_List] := Apply[f, X]
> Map[g, ij]
>
> {f[1, 1], f[1, 2], f[1, 3], f[1, 4], f[2, 1], f[2, 2], f[2, 3],
> f[2, 4], f[3, 1], f[3, 2], f[3, 3], f[3, 4], f[4, 1], f[4, 2],
> f[4, 3], f[4, 4]}
>
> Is there a way I can bypass the intermediate function g[x] and produce the final list in a single step?
>
> Thanks
>
> Themis
>
Using Apply at level 1 should do the trick...
In[216]:= f @@@ ij
Out[216]= {f[1, 1], f[1, 2], f[1, 3], f[1, 4], f[2, 1], f[2, 2],
f[2, 3], f[2, 4], f[3, 1], f[3, 2], f[3, 3], f[3, 4], f[4, 1],
f[4, 2], f[4, 3], f[4, 4]}
or
In[220]:= Apply[f, ij, 1]
Out[220]= {f[1, 1], f[1, 2], f[1, 3], f[1, 4], f[2, 1], f[2, 2],
f[2, 3], f[2, 4], f[3, 1], f[3, 2], f[3, 3], f[3, 4], f[4, 1],
f[4, 2], f[4, 3], f[4, 4]}
-Andy