9月 18
恒例のフィボナッチベンチで V8 と Smalltalk、Ruby、Python、Scheme とを戦わせてみるにHaskellがいないではないか!ってことで、やってみた。(やってからブログ書く暇がなくて、かなり乗り遅れてるけど)
gabu@ubuntu-vm:~/haskell/fib$ time ./fib 39 63245986 real 0m0.019s user 0m0.000s sys 0m0.012s
0.019秒きたーーー。
ソースはこちら。
import System fibonacci = 1:1:zipWith (+) fibonacci (tail fibonacci) main = do args <- getArgs print $ fibonacci !! ((read $ head args) - 1)
List の index の関係で マイナス1してるのがださいけど、こんなもんですかねぇ。
フィボナッチ数列の作り方は、フィボナッチ数列 - Haskell はスケるよから頂きました。読んでも意味が分かりません。。。誰か解説プリーズ。
10月 3rd, 2008 at 14:44:24
(メールアドレスはダミーです。)
ocamlではどうかと。。。
やってる人居ましたね。
http://d.hatena.ne.jp/komamitsu/20080905/1220628693
漠然とhaskellよりocamlの方が早いんじゃないかと思ってたけど、
違いましたね。
自分でもやってみたら、ocamlはネイティヴでも1.3でした。
haskellは、0.011。。。
10月 4th, 2008 at 14:03:47
haskellでも(fib (n - 1)) + (fib (n - 2))っぽく書くと遅くなると思いますよ。遅延評価と(元ネタさんの)リストの作り方のアイディアが素晴らしいですね。