在以下表达式(版本 0.6.2)中,一个生成器生成一维数组和另一个生成二维数组之间的逻辑是什么:
julia> collect((a,b,c) for (a,b) in ((i,j) for i in 1:2 for j in 3:4), c in 5:6)
8-element Array{Tuple{Int64,Int64,Int64},1}:
(1, 3, 5)
(1, 4, 5)
(2, 3, 5)
(2, 4, 5)
(1, 3, 6)
(1, 4, 6)
(2, 3, 6)
(2, 4, 6)
julia> collect((a,b,c) for (a,b) in [(i,j) for i in 1:2 for j in 3:4], c in 5:6)
4×2 Array{Tuple{Int64,Int64,Int64},2}:
(1, 3, 5) (1, 3, 6)
(1, 4, 5) (1, 4, 6)
(2, 3, 5) (2, 3, 6)
(2, 4, 5) (2, 4, 6)
唯一的区别是用第二个表达式中的推导替换第一个表达式中的生成器。