Как сделать произвольный уровень вложенного цикла for
Я могу сделать двухуровневый вложенный цикл, как это
for i1 in 1:n
for i2 in 1:n
do something with (i1,i2)
Как расширить это на произвольный уровень вложенного цикла?
Например, я могу сделать это в Python, чтобы зациклить декартово произведение n ^ m
for i in (itertools.product(xrange(n),repeat=m)):
подобно
for i in (itertools.product(xrange(2),repeat=3)):
print i
(0, 0, 0)
(0, 0, 1)
(0, 1, 0)
(0, 1, 1)
(1, 0, 0)
(1, 0, 1)
(1, 1, 0)
(1, 1, 1)
Спасибо за комментарий @ tholy. Я успешно применил Iterators.jl. Я новичок Джулии, поэтому мой код может быть неуклюжим.
for i in product(repmat(Any[1:2],3)...)
println(i)
end
(1,1,1)
(2,1,1)
(1,2,1)
(2,2,1)
(1,1,2)
(2,1,2)
(1,2,2)
(2,2,2)