問題4.58 – SICP(計算機プログラムの構造と解釈)その231

問題4.58

次の規則を定義する。

ある人の部門と、
ある人の supervisor の部門が異なる場合。
ある人は、その部門の big shot (黒幕)である。

(assert! (rule (same ?x ?x)))

(assert! (rule (big-shot ?person)
               (and (job ?person (?section . ?type))
                    (supervisor ?person ?supervisor)
                    (job ?supervisor (?section-sp . ?type-sp))
                    (not (same ?section ?section-sp)))))

コンピュータ部門の big shot (黒幕)を探す。

(and (job ?who (computer . ?type))
     (big-shot ?who))

実行結果

;;; Query input:
(and (job ?who (computer . ?type))
     (big-shot ?who))

;;; Query results:
(and (job (Bitdiddle Ben) (computer wizard)) (big-shot (Bitdiddle Ben)))

経理部門の big shot (黒幕)を探す。

(and (job ?who (accounting . ?type))
     (big-shot ?who))

実行結果

;;; Query input:
(and (job ?who (accounting . ?type))
     (big-shot ?who))

;;; Query results:
(and (job (Scrooge Eben) (accounting chief accountant)) (big-shot (Scrooge Eben)))
計算機プログラムの構造と解釈
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
«
»