《Elixir》中的延迟列表理解



是否有一种方法可以使列表理解在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",但是它还有待于语言的一些其他改进。

相关内容

  • 没有找到相关文章

最新更新