Next: 5.5 ホーン節の変数名の変更
Up: 5 Prolog処理系の実現
Previous: 5.3 ゴールの証明の流れ
ホーン節の中に現れる論理変数のリストを作る関数を考えます.
同じ論理変数名は何箇所にあらわれても一つとみなされるように
しなければなりません.そこで以下のように定義します.
(defun variables-in (exp)
(unique-find-anywhere-if #'variable-p exp))
(defun unique-find-anywhere-if
(predicate tree &optional result)
(cond
((atom tree)
(if (funcall predicate tree)
(adjoin tree result)
result))
(t (unique-find-anywhere-if
predicate
(first tree)
(unique-find-anywhere-if predicate (rest tree)
result)))))
<cl> (variables-in '(<- (carnivore ?x)
(human ?x) (eat ?x meat)))
(?X)
Next: 5.5 ホーン節の変数名の変更
Up: 5 Prolog処理系の実現
Previous: 5.3 ゴールの証明の流れ
generated through LaTeX2HTML. M.Inaba 平成18年5月21日