Haskellでフィボナッチ数列

もう既に申し込んであるのだけど,これの対象を満たすために一応.

import System

main = do
  args <- getArgs
  print $ fibs $ read $ head args

fib :: Integer -> Integer
fib 0 = 0
fib 1 = 1
fib n = fib(n - 1) + fib(n - 2)

fibs :: Integer -> [Integer]
fibs n = map fib [0..n]

mapで毎回fibを計算して過去の分を使ってないので,その辺りが微妙.これはxyzzyでやったけど,Haskell-modeはEmacsの方がいい感じだ.それにしてもこんなレベルで行くとフルボッコになりそうなので,もう少し復習する.


良書らしい"Programming in Haskell"を買うべきか…