続:Haskellのfibが遅い件
とても勉強になる流れなのでとりあえずざっくりとまとめる
- Haskellの「fib = 1:1:zipWith (+) fib (tail fib)」はとても遅い
- Togetter - 「Haskellの「fib = 1:1:zipWith (+) fib (tail fib)」はとても遅い件」
- Integerの足し算のコストとかも絡んでくるのでややこしいという話など
- fib = 1 : 1 : zipWith (+) fib (tail fib) が遅いかどうかは、使い方に依存する - www.kotha.netの裏
- fibを先頭から順に使って行った場合(例:sum (take 300000 fib))の方が、fib !! 300000よりずっと速いという話
- 僕の書いた早いバージョンのfibは正格性が(コード上には明記されていないが)コンパイラによって推論されているという話
- melancholic afternoon
- 巨大なリストから要素1つだけを取り出す時と2つ以上取り出すときではかかる時間や消費メモリがぜんぜん違うという話
- Haskellの神話 - あどけない話
- 正格評価するzipWith'を作ればよい、という話など
- haskell の fib は遅くない - 白のカピバラの逆極限 S.144-3
- 空間計算量が一時的に影響与えたと考えるのが自然、という話
- 「まずふたりともグラフを描くべきである」 http://twitter.com/gusmachine/status/18840198768
- グラフ: はじめてのにき(2010-07-19)
- 「2.77618e-13*x^2.55 の方が 2.10854e-10*x^2 よりどう見てもマッチしてるな。特異的って感じもないと思う。」空間計算量が一時的に影響与えたのではないのではないか、という話
- Togetter - 「続:Haskellのfibが遅い件」