是否有一种方法可以使列表理解在Elixir懒惰?如果没有,有没有办法把它变成一个Stream
?
my_list = for i <- (1..1000000), j <- (1..1000000), do: {i, j}
这段代码占用了太多的内存,破坏了我的程序。
我想在my_list上应用一个过滤器,映射和减少
推导式是平面映射。所以你的代码相当于:
Stream.flat_map 1..1000000, fn i ->
Stream.flat_map 1..1000000, fn j ->
[{i, j}]
end
end
我已经为未来的Elixir版本提出了"流for"one_answers"并行for",但是它还有待于语言的一些其他改进。