本当は怖いHPC

HPC屋の趣味&実益ブログ

関数プログラミング入門・一人読書会 (4)

関数プログラミング入門」の練習問題をやっていきます

今回は1.5.1〜1.5.2

1.5.1

フィボナッチ数を計算する関数fibを定義する

fib :: Integer -> Integer
fib n
  | n <  0 = error "fib: n must be >= 0"
  | n == 0 = 0
  | n == 1 = 1
  | otherwise = fib (n - 1) + fib (n - 2)

main :: IO()
main = putStrLn $ show $ (fib 20) == 6765

1.5.2

整数の絶対値を返す関数absを定義せよ

abs' :: Integer -> Integer
abs' n
  | n < 0 = -n
  | otherwise = n

main :: IO()
main = do
  putStrLn $ show $ (abs'   0) ==  0
  putStrLn $ show $ (abs'  20) == 20
  putStrLn $ show $ (abs' (-20)) == 20

関数プログラミング入門 ―Haskellで学ぶ原理と技法―

関数プログラミング入門 ―Haskellで学ぶ原理と技法―

【広告】