問題5.1 – SICP(計算機プログラムの構造と解釈)その248
問題5.1 いよいよ、最後の章に入る。 この問題では「一時的」レジスタは不要。 制御順で counter のインクリメントが後になるようにする。 計算機プログラムの構造と解釈 posted with amazlet at 08.11.07 ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン ピアソンエデュケーション 売り上げランキング: 6542 Amazon.co.jp で…続きを読む
問題5.1 いよいよ、最後の章に入る。 この問題では「一時的」レジスタは不要。 制御順で counter のインクリメントが後になるようにする。 計算機プログラムの構造と解釈 posted with amazlet at 08.11.07 ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン ピアソンエデュケーション 売り上げランキング: 6542 Amazon.co.jp で…続きを読む
問題4.76 ;; 新しい conjoin 手続き (define (conjoin conjuncts frame-stream) (if (empty-conjunction? conjuncts) frame-stream (merge-frame-streams (qeval (first-conjunct conjuncts) frame-stream) (conjoin (rest-c…続きを読む
問題4.75 (define (unique-query exps) (car exps)) (define (uniquely-asserted operands frame-stream) (stream-flatmap (lambda (frame) (let ((result (qeval (unique-query operands) (singleton-stream frame)))…続きを読む
問題4.74 a. (define (simple-stream-flatmap proc s) (simple-flatten (stream-map proc s))) (define (simple-flatten stream) (stream-map stream-car (stream-filter (lambda (s) (not (stream-null? s))) stream)…続きを読む
問題4.72 ストリームの最初の要素が無限ストリームの場合、2番目のストリームの要素がいつまでたっても呼び出されなくなる。 問題4.73 これは、問題4.71 と同様の理由か? ;; 元の評価機の flatten-stream 手続き (define (flatten-stream stream) (if (stream-null? stream) the-empty-stream (interl…続きを読む
Ubuntu 8.04 (Hardy Heron) でゴミ箱の実体ディレクトリの場所を探した。 Nautilus の "場所:" では trash:/// としか表示されず、実際の場所がわからない。 調べてみたら、 ~/.local/share/Trash/files/ が実際のディレクトリだった。 ついでに、調べ方のメモを残しておく。 適当なファイル名(hogehogefug…続きを読む
問題4.71 ;;;; 評価機での simple-query 手続き (define (simple-query query-pattern frame-stream) (stream-flatmap (lambda (frame) (stream-append-delayed (find-assertions query-pattern frame) (delay (apply-rules qu…続きを読む
問題4.70 cons-stream により作られるストリームの cdr は遅延評価されるため THE-ASSERTIONS は初期値として与えられた assertion の無限ストリームとなる。 let により一時退避させることにより無限ストリーム化を防いでいる。 ;; 元の評価機の add-assertion! 手続き (define (add-assertion! assertion) (s…続きを読む
問題4.69 問題4.63 のデータベースと各規則の子と孫の関係を利用する。 (assert! (rule ((great . ?rel) ?x ?y) (and (son-of ?x ?w) (?rel ?w ?y)))) (assert! (rule ((grandson) ?x ?y) (grandson-of ?x ?y))) 実行結果 ;;; Query input: ((great g…続きを読む
問題4.68 (assert! (rule (append-to-form () ?y ?y))) (assert! (rule (append-to-form (?u . ?v) ?y (?u . ?z)) (append-to-form ?v ?y ?z))) (assert! (rule (reverse () ()))) (assert! (rule (reverse (?car . ?c…続きを読む