Re: Variable-length list?
- To: mathgroup at smc.vnet.net
- Subject: [mg83489] Re: [mg83417] Variable-length list?
- From: DrMajorBob <drmajorbob at bigfoot.com>
- Date: Wed, 21 Nov 2007 03:01:25 -0500 (EST)
- References: <26494129.1195601742132.JavaMail.root@m35>
- Reply-to: drmajorbob at bigfoot.com
This is precisely what Array does. For instance:
Clear[f, g]
f[m_?(VectorQ[#, IntegerQ] &)] := Flatten[Array[g, m], Length@m - 1]
g = List[##] &;
f[{3, 4, 2}]
{{1, 1, 1}, {1, 1, 2}, {1, 2, 1}, {1, 2, 2}, {1, 3, 1}, {1, 3, 2}, {1,
4, 1}, {1, 4, 2}, {2, 1, 1}, {2, 1, 2}, {2, 2, 1}, {2, 2, 2}, {2,
3, 1}, {2, 3, 2}, {2, 4, 1}, {2, 4, 2}, {3, 1, 1}, {3, 1, 2}, {3, 2,
1}, {3, 2, 2}, {3, 3, 1}, {3, 3, 2}, {3, 4, 1}, {3, 4, 2}}
or
g = Print[Times[##]] &;
f[{3, 4}];
1
2
3
4
2
4
6
8
3
6
9
12
Bobby
On Tue, 20 Nov 2007 02:45:46 -0600, Hoa Bui <hoabui05 at gmail.com> wrote:
> Hi all,
>
> I want to have either a module or a function that inputs a
> varying-length list M[[nx]], where nx is a parameter, and accesses all=
> of its elements.
>
> For example:
>
> f[M_?(Function[v,VectorQ[v,IntegerQ]]]:=Module[{i,j,k},
> ...
> ]
>
> If M={3,4} then f would do something like:
> For [i=1,i<3,i++,
> For [j=1,j<4,j++,
> Print[i*j];
> ]
> ]
>
> If M={3,4,5} then:
> For [i=1,i<3,i++,
> For [j=1,j<4,j++,
> For [k=1,k<5,j++,
> Print[i*j*k];
> ]
> ]
> ]
> ]
>
>
> I wonder if this is doable in Mathematica, and/or what would be a way =
to =
> do it?
>
> Thanks a lot,
> Hoa
>
>
-- =
DrMajorBob at bigfoot.com