       Re: Getting rid of those deprecated Do[] loops?

• To: mathgroup at smc.vnet.net
• Subject: [mg92778] Re: [mg92763] Getting rid of those deprecated Do[] loops?
• From: Bob Hanlon <hanlonr at cox.net>
• Date: Mon, 13 Oct 2008 06:17:51 -0400 (EDT)

```n = 100; m = 100;

data1 = {};
Timing[Do[
Do[data1 = AppendTo[data1, {aa, bb, xx, yy}], {bb, 10, m,
10}], {aa, 1, n}];]

{0.03825,Null}

Timing[data2 =
Table[{aa = kk[]; bb = kk[]; aa, bb, xx, yy}, {kk,
Flatten[Outer[{#1, #2} &, Range[n], Range[10, m, 10]], 1]}];]

{0.003871,Null}

Timing[data3 =
Flatten[Outer[{#1, #2, xx, yy} &, Range[n], Range[10, m, 10]],
1];]

{0.00092,Null}

data1 == data2 == data3

True

Bob Hanlon

---- AES <siegman at stanford.edu> wrote:

=============
Trying to think of a "two-variable iterator" approach that will let one
produce the same results as

data = { };
Do[
Do[
data = AppendTo[data, {aa, bb, xx, yy}],
{bb, 10, 30, 10}],
{aa, 1, 2}];
Print[data // TableForm];

without using those universally deprecated (and even worse, nested)
Do[ ] loops, not to mention the equally deprecated AppendTo[].

Somewhat to my surprise, the construction

Table[{aa = kk[];  bb = kk[];  aa, bb, xx, yy},
{kk,  {{1, 10},  {1, 20},  {1, 30},  {2, 10},  {2, 20},
{2,30}}}
] // TableForm

using a two-dimensional iterator iterator variable kk, actually does
this, though the "iterator list" is obviously a bit messy.

Simpler way of defining an iterator to do this?  In more than two
iterator dimensions (aa, bb, cc,...)?  (with no functional dependence
between the values of aa, bb, cc).

Is the concept of a multi-dimensional iterator variable kk mentioned in
the M6 documentation anywhere?  (A search on "Iterate" or "iteration"
brings up 193 hits at 10 per screen.)

--

Bob Hanlon

```

• Prev by Date: Re: Getting rid of those deprecated Do[] loops?
• Next by Date: Re: Inconsistent syntax for Row and Column?
• Previous by thread: Re: Getting rid of those deprecated Do[] loops?
• Next by thread: Re: Getting rid of those deprecated Do[] loops?