       Re: Iterator sequences

• To: mathgroup at yoda.physics.unc.edu
• Subject: Re: Iterator sequences
• From: TODD GAYLEY <TGAYLEY at ccit.arizona.edu>
• Date: 03 Oct 1992 20:41:20 -0700 (MST)

```Hans Kunzle (hkunzle at galilei.math.ualberta.ca) asks:

>  Is there a way in Mathematica to generate a list of
>  iterators dynamically?
>
>  What I have in mind is something like
>
>    Sum[ Product[v[i]^j[i],{i,3}],Table[{j[i],nn[[i]]},{i,3}]]
>
>  where nn is a given list of integers.
>  This won't work since Table[..] is a list of lists, not
>  just a sequence. I tried to fool Mathematica into
>  accepting it by using
>
>    Sum[ Product[v[i]^j[i],{i,3}],
>         ToExpression[StringDrop[StringDrop[
>         ToString[Table[{j[i],nn[[i]]},{i,3}]],1],-1]] ]
>
>  but also get just an error message

A general method to capture the contents of a list without the enclosing
braces (i.e., as a sequence of items separated by commas) is to Apply Sequence
to it:

Sequence@@{x,y,z}  ------->  Sequence[x,y,z]

The first function that gets its hands on a Sequence object will strip off the
Sequence head, effectively splicing in a series of arguments separated by
commas. Thus you can use Sequence to "package" a series of arguments to a
function.

Sum[Product[v[i]^j[i],{i,3}],Evaluate[Sequence@@Table[{j[i],nn[[i]]},{i,3}]]]

The Evaluate is necessary to overcome the HoldAll attribute of Sum.

--Todd

-----------------------------------------------------------------
Todd Gayley
Department of Ecology and Evolutionary Biology
University of Arizona
tgayley at ccit.arizona.edu       -or-        tgayley at cs.arizona.edu

```

• Prev by Date: ListPlot3D
• Next by Date: Erf or Hypergeometric1F1
• Previous by thread: Iterator sequences