先生の昔の記事

ZEAM開発ログ番外編: Elixir で再帰とStreamのどちらが速いのか,素因数分解で比較してみた
https://qiita.com/zacky1972/items/d63903ff68f64e52b74a
> @zacky1972 による Stream 版その1で,次のような方針を採っています。
> 最初にエラトステネスの篩(sieve)により素数を生成。ただし最初から2と奇数に絞っている。

> def sieve(seq) do
> Stream.unfold(seq, fn s ->
> p = s |> Enum.at(0)
> next = s |> Stream.filter(fn x -> rem(x, p) != 0 end)
> {p, next}
> end)
> end

> 素数の無限数列を生成するために,エラトステネスの篩 (sieve) は @naoya@github さんの「無限リストによるエラトステネスのふるい」を採用しました。

「先生!エラトステネスの篩には剰余計算要らないんですよ」って誰か言ってやらんのか?
Elixir界隈は馬鹿の連鎖が深刻だな。