Mr. Twister

Тензорный for

Мне не хватает в популярных языках программирования синтаксической конструкции, которая означала бы "устроить в данном месте n вложенных циклов for, индексированных элементами данного целочисленного вектора длины n, где n выясняется в рантайме". Пока что приходится заводить этот вектор самому, и вручную реализовывать в нем алгоритм прибавления единицы столбиком.
  • Current Mood: giggly giggly
Я в таких случаях всегда использую рекурсию. Всё же будет поудобнее, чем прибавлять единицу столбиком.
MatLab?
a = 1:10
b = 1:5
c = a'*b
d = c.^2
Аналог стандартного
for a = 1 to 10
  for b = 1 to 5
    d(a, b) = (a*b)^2
  next b
next a
о! всю жизнь мечтал узнать что такое тензоры!
То есть нужно обежать n-мерную матрицу?
В Python такое есть.

import itertools
n=2
for v in itertools.product(*[range(2)]*n):
    print v

(0, 0)
(0, 1)
(1, 0)
(1, 1)