課題10-3
まだ初心者にもなっていないのにうpするつもり.というのも,上のページの課題10-3なんですが,とりあえずやってみたところ,
(defun number-elements (x)
(cond ((atom x) nil)
((numberp (first x)) (cons (first x) (number-elements (rest x))))
(t (number-elements (rest x)))))
ってな感じに.これはこれで上手く動いているんですけど,下のようなプログラムだと,
(defun number-elements (x)
(if (atom x) nil
(cons (if (numberp (first x)) (first x) nil) (number-elements (rest x)))))
数字以外のとこにnilが要素として入っちゃいます.第一引数が何だろうとリストの先頭にぶっこむのはconsの仕様なんだろうけど(曖昧),何かきれいに書く方法はないだろうかと.lisperの人がいたら教えていただきたい.ちょっと早めのクリスマスプレゼントをくらはい.