開発環境
- OS X Lion - Apple(OS)
- Emacs、BBEdit - Bare Bones Software, Inc. (Text Editor)
- Scheme (プログラミング言語)
- MIT/GNU Scheme (処理系)
計算機プログラムの構造と解釈(Gerald Jay Sussman(原著)、Julie Sussman(原著)、Harold Abelson(原著)、和田 英一(翻訳)、ピアソンエデュケーション、原書: Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)(SICP))の4(超言語的抽象)、4.4(論理型プログラミング)、4.4.1(推論的情報検索)、プログラムしての論理、問題 4.63を解いてみる。
その他参考書籍
問題 4.63
;; 孫を見つけるための規則を形式化
(rule (grandson ?g ?s)
(and (son ?f ?s)
(son ?g ?f)))
;; 息子を見つける規則を形式化
(rule (son ?m ?s)
(or (son ?m ?s)
(and (wife ?m ?w)
(son ?w ?s))))
手動で確認。
;; Cainの孫
(grandson Cain ?s)
(and (son ?f ?s)
(son Cain ?f))
;;
(grandson Cain ?s)
(and (son Enoch ?s)
(son Cain Enoch))
;;
(grandson Cain Irad)
(and (son Enoch ?Irad)
(son Cain Enoch))
;; ということで、Cainの孫はIrad
;; Lamechの息子たち
(son Lamech ?s)
(or (son Lamech ?s)
(and (wife ?lamech ?w)
(son ?w ?s)))
;;
(son Lamech ?s)
(and (wife lamech Ada)
(son Ada ?s))
;; ということで、Lamechの息子はJabalとJubal
;; Methushaelの孫たち
(grandson Methushael ?s)
(and (son ?f ?s)
(son Methushael ?f))
;;
(grnadson Methushael ?s)
(and (son Lamech ?s)
(son Methushael Lamech))
;;
(grandson Methushael ?s)
(and (and (wife Lamech ?w)
(son ?w ?s))
(son Methushael Lamech))
;;
(grandson Methushael ?s)
(and (and (wife Lamech Ada)
(son Ada ?s))
(son Methushael Lamech))
;; よって、Methushaelの孫たちは、JabalとJubal
質問システムの実装はまだ(この先に実装もあるみたい)なので、実装できたら入出力結果を確認してみることに。
0 コメント:
コメントを投稿