Nested loops, cross products, and so on (was: new in programing)

Cameron Laird claird at lairds.us
Fri Dec 16 15:08:03 EST 2005


In article <1134171597.484596.147510 at f14g2000cwb.googlegroups.com>,
Dan Bishop <danb_83 at yahoo.com> wrote:
>Cameron Laird wrote:
>...
>>   for hextuple in [(i, j, k, l, m, n)
>>          for i in range(1, lim + 1) \
>>          for j in range (1, lim + 2) \
>>          for k in range (1, lim + 3) \
>>          for l in range (1, lim + 4) \
>>          for m in range (1, lim + 5) \
>>          for n in range (1, lim + 6)]:
>>       print hextuple
>>
>> I don't think the list comprehension helps, in this case--although
>> it hints at the temptation of an eval-able expression which is
>> briefer.  More on that, later.
>
>from the recent "N-uples from list of lists" thread import cross
>
>for hextuple in cross(*[xrange(1, lim+p) for p in xrange(1, 7)]):
>   print hextuple
>

Tangential remarks:  cross product is *very* important; why
isn't it built in?  Yes, I recognize that the recipes supplied
elsewhere are quite nice.

I've seen a lot of Fortran and C code of the "for (...) {for (...) { ..."
variety.  I have a deep suspicion that most of them betray
fundamental miscomprehension of physical realities.  It's very,
*very* unusual for any meaningful measurement to arise across a
medium-dimension product of real intervals.  I invite
counterexamples.  In the meantime, I'll persist in suspecting
that such computations are symptoms of a misunderstanding.

So:  cross products are valuable, but particularly so when not
limited to crosses over numeric intervals.



More information about the Python-list mailing list