Yoichi's diary
2014-09-09
_ [Haskell] 引数は一度だけ評価される
のを確認してみた (keyword: グラフ簡約)。fib :: Integer -> Integer fib 1 = 1 fib 2 = 1 fib n = fib (n-1) + fib (n-2) doubleNum :: (Num a) => a -> a doubleNum a = a + a時間を比較してみる:
ghci> :set +s ghci> fib 30 832040 (1.07 secs, 327131304 bytes) ghci> (fib 30) + (fib 30) 1664080 (2.10 secs, 643669672 bytes) ghci> doubleNum $ fib 30 1664080 (1.07 secs, 322107624 bytes)
[ツッコミを入れる]