これは私が炎戦を始めようとしているように聞こえるかもしれませんが、私を聞いてください。私はElixirで列挙するEnumを好むべきでしょうか?
一部の言語では、怠惰は高価です。 (大規模なデータセットをページング思う)あなたは、メモリのためのCPUをトレードオフしなければならない
- :それはときにのみ魅力的ですので、それは、繊維を使用して達成されますので、例えば、私が最も最近の経験を持つルビー、で、怠惰が遅いです
- パフォーマンスの低下は、それが詳細を非表示する価値がある(繊維に降伏する代わりに、神秘的な場所で実行するようにブロックを下に渡すの抽象化、複雑に最適な方法です)
そうでなければ、あなたは間違いなく使用することをお勧めします通常の、熱心な方法。
私の最初の調査は、(Redditの上this threadが私をバックアップ)エリクシールで怠惰のためのオーバーヘッドが非常に低いことを示唆しているので、これまでの流れを行うことができますそれらのもののために代わりにストリームの列挙型を使用する理由はほとんどありそうです。
私は、Enumが理由で存在し、Streamと同じ機能をいくつか実装していると仮定しているため、紛失しているものがありますか?ストリームを使用できるときに、ストリームの代わりにEnumを使用したい場合、どのような場合がありますか?
「非常に複雑なマップ関数」を意味すると思います – greggreg
いいえ、私は減らすことを意味します。 mapはreduceの特別なケースです。 https://github.com/elixir-lang/elixir/blob/master/lib/elixir/lib/stream/reducers.ex –
を参照してください。 – greggreg