関数型言語の勉強にSICPを読もう - (44) 3章 - 標準部品化力、オブジェクトおよび状態 (175-180ページ)

3.4並列性:時が本質的

読む前の想像では atomicな処理とか semaphore とか、dead lock などの話であると予想。
このあたりはMonaで必要に迫られて結構勉強したから得意なはず。

問題3.38

Perter, Paul, Maryの共同口座だそうです。
Puff the Magic Dragonを聞きたくなった。
今回はギリギリ元ネタに気づいたけど実はSICPってネタ満載なのだろうか?

a

逐次的なので6通り。

Peter Paul Mary 45
Peter Mary Paul 35
Mary Paul Peter 40
Mary Peter Paul 40
Paul Peter Mary 45
Paul Mary Peter 50
b

図が面倒なので略。

問題3.39

101
121
110→起こらない
11→起こらない
100

問題3.40

(define x 10)
(parallel-execute (lambda () (set! x (* x x)))
                                 (lambda () (set! x (* x  x x))))

とりあえず掛け算の演算自体は atomicであるという前提で進める。

Process1 P1読み取り1 P1読み取り2 P1掛け合わせる P1set!する  
Process2 P2読み取り P2読み取り2 P2読み取り3 P2掛け合わせる P2set!する

これがいい感じで混ざる。


直列化すると
1,000,000と100,000,000の2通りのみ。


※「SICPを読もう」の目次はこちら


計算機プログラムの構造と解釈
Gerald Jay Sussman Julie Sussman Harold Abelson 和田 英一
ピアソンエデュケーション (2000/02)
売り上げランキング: 56,404