素人くさいSICP読書会
素人くさいSICP読書会に参加し始めた.
いま4章のLISPインタプリタのところ,4.2.2 遅延評価とメモ化を実装した
メモ化しておけばfibonacciを
(define (fib x) (if (< x 2) 1 (+ (fib (- x 1)) (fib (- x 2)) ) ) )
みたいなナイーブな実装で書いてもちゃんと高速に動く...はずだが,なんか私が書いたものだけちゃんとメモ化できてなかったので,まさにfibonacci的な遅さになっていった.ダウンロードしてきた実装まるぱくりではいかんようだ.
(fib 5) =>8 cpu time: 47 real time: 16 gc time: 0 (fib 10) =>89 cpu time: 266 real time: 250 gc time: 0 (fib 15) =>987 cpu time: 2812 real time: 2812 gc time: 0 (fib 20) =>10946 cpu time: 31516 real time: 58484 gc time: 406 (fib 25)
IT系ニュースサイトにSchemeの記事をぜひ
帰りがけに参加者とお話.日経BPの記者の方だった.さすがに普段Schemeを仕事で使うことはないらしい....と思っていたけど,Haskellの記事もあるから,そのうちSchemeの記事もぜひのっけてもらいたいものだ.