すごいHaskell本
今日から4章に入ります。4章は再帰。
再帰については『Scheme手習い』を読んでたときに散々やったので、今のところは何も引っかかるところなくサクサク進みます。
1つだけ疑問点。引数の値を利用していないパターンで、アンダースコアではなく a などの変数を使っているところがあるのはなぜなのだろう。例えば56ページの elem' 関数とか。
elem' :: (Eq a) => a -> [a] -> Bool elem' a [] = False elem' a (x:xs) | a == x = True | otherwise = a `elem'` xs
2行目で、2つ目の引数が空リストならば1つめの引数が何であろうと無条件でFalseを返しています。こういう場合にも、引数にaなどの文字を使っているのは、なにか慣習があるからのだろうか。