学習ログ

Pattern Matching

sumList(x:xs) = x + sumList(xs)
sumList []    = 0

sumList [1..5]

xは 配列のhead、xsは残りのtail
配列が空になるまで、再帰的にsumListを呼ぶ。空なら0を返す

イメージ
1+(2..5)
1+(2+(3..5))
1+(2+(3+4(5+(0)))


enumeration

data DayOfWeek = Monday
                 | Tuesday
                 | Wednesday
                 | Thursday
                 | Friday
                 | Saturday
                 | Sunday
                   deriving(Eq, Show)

Real World Haskell: Code You Can Believe In

Real World Haskell: Code You Can Believe In