問題5.2 – SICP(計算機プログラムの構造と解釈)その249
問題5.2 (controller initialize (assign product (const 1)) (assign counter (const 1)) test-counter (test (op >) (reg counter) (reg n)) (branch (label factorial-done)) (assign product (op *) (reg produ…続きを読む
問題5.2 (controller initialize (assign product (const 1)) (assign counter (const 1)) test-counter (test (op >) (reg counter) (reg n)) (branch (label factorial-done)) (assign product (op *) (reg produ…続きを読む
ブログのコメントスパムが酷くなってきたので、スパムフィルタリング Plugin の Akismet を利用してみることにする。 このプラグインの利用には WordPress.com API Key が必要になるので、WordPress.com にアクセスして "Sign up now" ボタンからユーザー登録ページに移動して、ユーザー登録を行う。 ユーザー登録申し込み後に登録メ…続きを読む
問題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…続きを読む