理系学生日記

おまえはいつまで学生気分なのか

問題3-38(a)のみ (3.4.1 The Nature of Time in Concurrent Systems)

プログラムの同時実行に関するよくある銀行口座の問題.
Peter や Paul,Mary がそれぞれ勝手に下記のプロセスを実行したときに,結果としての口座残高のパターンをリスティングする.
(b)みたいに図を書く問題はメンドいから省略する!

# Peter:
(set! balance (+ balance 10))
# Paul:
(set! balance (- balance 20))
# Mary:
(set! balance (- balance (/ balance 2)))

これで全部かな.

  • Peter->Paul->Mary: $45
  • Peter->Mary->Paul: $35
  • Paul->Peter->Mary: $45
  • Paul->Mary->Peter: $50
  • Mary->Peter->Paul: $40
  • Mary->Paul->Peter: $40