How to make arbitrary level of nested for-loop
julia
Solution
In v0.5 there is a product iterator in Base, so you can now write this as `Base.product(fill(1:2,3)...)`. `fill` produces an array with a value repeated some number of times; I find this a bit more elegant than creating a 1-element array and calling `repmat`.
Problem
I can do a two level nested loop like this ``` for i1 in 1:n for i2 in 1:n do something with (i1,i2) ``` How do I extend this into arbitrary level of nested loop? For example, I can do this in Python to loop the cartesian product of n^m ``` for i in (itertools.product(xrange(n),repeat=m)): ``` Like ``` 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) ``` Thank you for @tholy's comment. I have successfully applied Iterators.jl. I'm a Julia newbie so my code maybe clumsy. ``` 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) ```