リストプロセッサ
今日はリストです。Haskellのリストは単方向リンクリスト(の一種?)なので、Lispのリストみたいに使えば良さそう。というわけで、Lispもどきをしゃべらせます。
car (x:xs) = x cdr (x:xs) = xs main = do print $ car "abcde" print $ cdr "abcde" print $ car [1, 2, 3, 4, 5] print $ cdr [1, 2, 3, 4, 5]
$ runghc list.hs 'a' "bcde" 1 [2,3,4,5] $
できました。が、わざわざ定義してあげる必要はなく、headとtailを使えば良いのです。
main = do print $ head "abcde" print $ tail "abcde" print $ head [1, 2, 3, 4, 5] print $ tail [1, 2, 3, 4, 5]