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

問題3.46 cell が true の間は他のプロセスは 相互排除器(mutex)を使えない。 2つのプロセスが同時に相互排除器を獲得するとプロセスの相互排除機能が破綻する。 計算機プログラムの構造と解釈 posted [...]…続きを読む

問題3.44、問題3.45 – SICP(計算機プログラムの構造と解釈)その141

問題3.44 交換(exchange)の場合とは違い残高の差(difference)を計算する必要がなく、transfer 実行時に指定するために Ben Bitdiddle の主張の方が正しい。 問題3.45 with [...]…続きを読む

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

問題3.43 残高の順序が 10, 20, 30 でなくなる場合 残高の合計の保存が破れる場合 Paul が withdraw、 deposit 実行時に、 a の値を調べるプロセスと a に新値を Set するプロセス [...]…続きを読む

問題3.41、問題3.42 – SICP(計算機プログラムの構造と解釈)その139

問題3.41 変更した部分は、アクセス時点での balance を返すだけで、書き換えによる変化がないために直列化は必要ない。 ((eq? m ‘balance) balance) ; ↓ 直列化 ((eq? m ‘ba [...]…続きを読む

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

問題3.40 P1 : (lambda () (set! x (* x x))) P2 : (lambda () (set! x (* x x x))) プロセスを次のように分割する。 X1-1 : P1 の1番目の x [...]…続きを読む

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

問題3.39 P1 : (lambda () (set! x ((s (lambda () (* x x)))))) P2 : (s (lambda () (set! x (+ x 1)))) 以下の3つの結果が残る。 [...]…続きを読む

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

問題3.38 問題a. 6通りある。 Peter -> Paul -> Mary => 110 -> 90 -> 45 Peter -> Mary -> Paul => 1 [...]…続きを読む

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

問題3.37 除算については、 x / y = z は x = y * z として multiplier で演算する。 (define (c+ x y) (let ((z (make-connector))) (adde [...]…続きを読む

JavaScript の構文チェックプログラム JSLint を vim から使う

JavaScript の構文チェックプログラム JSLint を vim で実行してスクラッチバッファに結果を表示させてみた。 以下は、その手順。 "scratch utility : 自由に開閉できる作業用バ [...]…続きを読む

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

問題3.36 (define a (make-connector)) (define b (make-connector)) (set-value! a 10 ‘user) gosh> done a と b のコネ [...]…続きを読む
Page 1 of 41234
↑ページの先頭へ