如果我想在每对字母上做一些事情,它可能在朱莉娅看起来像这样:
for l1 in 'a':'z'
for l2 in 'a':'z'
w = l1*l2
# ... do something with w ...
end
end
Run Code Online (Sandbox Code Playgroud)
我希望将此概括为任意长度的单词,给定一个n指定所需字母数的值.我如何在朱莉娅中做到最好?
您可以使用:
for ls in Iterators.product(fill('a':'z', n)...))
w = join(ls)
# ... do something with w ...
end
Run Code Online (Sandbox Code Playgroud)
特别是如果你想在数组中收集它们,你可以写:
join.(Iterators.product(fill('a':'z', n)...))
Run Code Online (Sandbox Code Playgroud)
或将其展平为矢量
vec(join.(Iterators.product(fill('a':'z', n)...)))
Run Code Online (Sandbox Code Playgroud)
但请注意,在大多数情况下,这不是必需的,对于更大的情况n,最好不要实现输出,而只是按照上面的建议迭代它.