2014年11月13日木曜日

開発環境

計算機プログラムの構造と解釈[第2版](ハロルド エイブルソン (著)、ジュリー サスマン (著)、ジェラルド・ジェイ サスマン (著)、Harold Abelson (原著)、Julie Sussman (原著)、Gerald Jay Sussman (原著)、和田 英一 (翻訳)、翔泳社、原書: Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)(SICP))の4(超言語的抽象)、4.4(論理型プログラミング)、4.4.4(質問システムの実装)、4.4.4.8(フレームと束縛)、問題 4.72.を解いてみる。

その他参考書籍

問題 4.72.

ストリームを差し込みにするのは、無限ストリームの場合にも、すべてのフレームにいずれはたどり着けるようにするため。

差し込みがうまく働くのが分かる例。

;; 表明
(p 1 2)
(p a b)

;; 規則
(rule (p ?x ?y)
      (or (p ?y ?x)
          (p a b)))

;; or の1つ目にマッチする表明(無限ループ)
(p 1 2), (p 1 2), ...

;; or の2つ目にマッチする表明
(p a b)

;; 差し込みにした場合
(p 1 2), (p a b), (p 1 2), (p 1 2), ...

;; 差し込みにしなかった場合
(p 1 2), (p 1 2), ...
;; よって、表明(p a b)が出力されなくなってしまう。

0 コメント:

コメントを投稿