再帰定義

Haskellにはforやwhileといったループのための構文が存在しないとのこと。このような場合は再帰定義を使うのだそうです。再帰なんて趣味のプログラムでたまに出てくるぐらいでしたが、Haskellの場合はしょっちゅう出てくるということなのでしょうね。

リストの連結の話が出てきました。1 : [2, 3]の値は[1, 2, 3]という例が出てきたのでそれじゃあとこんなプログラムを作成。

main = do print $ 1 : [2, 3]
          print $ [1, 2] : 3
          print $ 1 : 2
          print $ 1 : [2]
          print $ [1, 2] : [3, 4]

型が違うパターンは駄目かなと思ったら案の定コンパイルエラーになりました。ページをめくって本の先の方を見てみると「:」演算子についての説明があって、

(:) :: a -> [a] -> [a]

とはっきり書いてあります。リスト操作についてはこれから詳しく出てくるようなので、そこでしっかり身につけたいと思います。