計算機科学のブログ

HaskellのI/O - Hello World!:IO型の紹介 - フィボナッチ数

入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)の UNIT4(HaskellのI/O)、LESSON 21(Hello World!:IO型の紹介)、21.5(練習問題)、Q21-2の解答を求めてみる。

コード

sample.hs

main :: IO ()
main = do
  line <- getLine
  let n = read line
  print $ fib n

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

入出力結果(Terminal, Zsh)

% runghc sample.hs 
0
0
% runghc sample.hs
1
1
% runghc sample.hs
2
1
% runghc sample.hs
3
2
% runghc sample.hs
4
3
% runghc sample.hs
10
55
%