タグ: sicp

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

問題4.70 cons-stream により作られるストリームの cdr は遅延評価されるため THE-ASSERTIONS は初期値として与えられた assertion の無限ストリームとなる。 let により一時退避させることにより無限ストリーム化を防いでいる。 ;; 元の評価機の add-assertion! 手続き (define (add-assertion! assertion) (s…続きを読む

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

問題4.61 最初の規則(rule)だけでは先頭からの2つの要素の隣接関係しか見つけられない。 2番目の規則(rule)によって連続する要素を再帰的に調べていく。 ; 調査対象リストの最初の 1, 2 番目の要素を next-to 関係とする。 (assert! (rule (?x next-to ?y in (?x ?y . ?u)))) ; 調査対象リストの内、2番目の要素以降のリストを調べる…続きを読む