計算機科学のブログ

HaskellのI/O Hello World!:IO型の紹介 入力、数値、read関数

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

コード

fib :: (Eq a, Num a, Num p) => a -> p
fib 0 = 0
fib 1 = 1
fib n = fib (n - 1) + fib (n - 2)

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

入出力結果(Terminal, Zsh)

% runghc sample2.hs 
0
0
% runghc sample2.hs 
1
1
% runghc sample2.hs
2
1
% runghc sample2.hs
10
55
%