定理証明手習い (79) exprs-recsとそういえば
exprs-recs
式のリストから再帰的な関数適用を抽出する
expr-recs
式から再帰的な関数適用を抽出する
変数なら数えない
クォートなら数えない
if
ならQ、A、E部の関数適用を抽出
関数適用で名前が一致したらそれ自身+引数に含まれる関数適用を抽出
名前が一致しなければ引数に含まれる関数適用を抽出
行数が多くてインデントが深いから一瞬ビビるけど読めば単純
ところでmap
みたいなの使わないの?って思ったことがあったけど
J-Bobの仕様では高階関数は使えない、ってことだろうか
lambda
はないし、Common Lisp系だとするとfuncall
もない
今はSchemeベースでやってるからこういうのも定義できるけど
(defun map (f xs)
(if (atom xs)
'()
(cons (f (car xs)) (map f (cdr xs)))))
(定義はできてもlambda
がないと不便、というのは置いといて)
Common Lispだったらこう書かないといけないんだっけ?
(cons (funcall f (car xs)) (map f (cdr xs)))))
しらんけど
考えてみるとこれまでも出てきてないかそう言えばそんな気がする