よくわかる現代魔法

帰省ついでに、よくわかる現代魔法を回収。
それにしても、オリジナル版の厚さに吹いたw


で、登場人物の一人に美鎖さんという人がいるんですが、この人、緊張をほぐすために、

整数列 [2..] をsieve (n:ns)=n:sieve [m | m<-ns, m `rem` n/=0] でエラトステネスのふるいに―
よくわかる現代魔法

かけてるらしいですよw
というか、Haskellじゃないですか、そのコード。
旧バージョンを読んだときには気づかなかった、というか、多分Haskell知らなかったんじゃないかな。


ちなみに、[2..]じゃ終わらないので*1実行できる止まるコードを。

sieve []     = []
sieve (n:ns) = n:sieve [m | m<-ns, m `rem` n /= 0]

これでsieve [2..100]とかやれば多分動く・・・はず。

*1:コメント欄で指摘があるように、takeで欲しいだけとれば実行できる