開発環境
- 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.62を解いてみる。
その他参考書籍
問題 4.62
空でないリストの最後の要素を含むリストを返す、last-pair演算を実装する規則を定義。
(rule (last-pair (?x) (?x))) (rule (last-pair (?x . ?y) (?z)) (last-pair ?y (?z)))
問題の各質問で規則を手動でチェック。
;; (last-pair (3) ?x) (last-pair (3) (3)) ;; (last-pair (1 2 3) ?x) ;; (last-pair (2 3) ?x) ;; (last-pair (3) ?x) (last-pair (1 2 3) (3)) ;; (last-pair (2 ?x) (3)) ;; (last-pair (?x) (3)) ;; (last-pair (3) (3)) (last-pair (2 3) (3)) ;; (last-pair ?x (3)) ;; 無数に存在するから正しく働かない。
質問システムの実装はまだ(この先に実装もあるみたい)なので、実装できたら入出力結果を確認してみることに。
0 コメント:
コメントを投稿