たくさんの関数

id:ha-tan:20061220:1166542507
すごいよ,Haskellすごいよ.こんな柔軟で読みやすいなんて!てか,何気にパターンマッチが素敵だなぁと改めて思う.


きっとlispも悟れば,鼻歌を歌いながらエレガントなコードが書けるようになるに違いない…にもかかわらず,大学でlispをちゃんと学ばないのは何でだぜ?


あ,あと,やっとmapが出てきました.とりあえず自分で書いてみた.if文以外に条件分岐を知らないので,今の時点ではこれ以上徳の高い書き方はできない.

(defun my-map (f lst)
  (if lst
      (cons (funcall f (car lst)) (my-map f (cdr lst)))))

実際の名前はmapcarなんですが.まぁこれでちゃんと動きます.

> (my-map #'(lambda (x) (+ x 1)) '(1 2 3))
(2 3 4)
> (mapcar #'(lambda (x) (+ x 1)) '(1 2 3))
(2 3 4)

やっぱcollectよりmapだよ.うん.