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