2015年5月22日金曜日

開発環境

コンピュータプログラミングの概念・技法・モデル(IT Architect' Archiveクラシックモダン・コンピューティング6) (IT Architects’Archive CLASSIC MODER)(セイフ・ハリディ (著)、ピーター・ヴァン・ロイ (著)、Peter Van-Roy (著)、 Seif Haridi (著)、羽永 洋 (翻訳)、翔泳社、原書: Concepts, Techniques, and Models of Computer Programming(CTM))の第部(一般的計算モデル)、第4章(宣言的並列性)、4.11(練習問題)、1.(スレッドの意味)を解いてみる。

1.(スレッドの意味)

      1. B=true
      2. yesが表示される。
      3. B=falseが失敗。(1でBに値は束縛済み)
      1. B=false
      2. yesは表示されない。
      3. B=trueが失敗。(1でBに値は束縛済み)
  1. try文(try/catch/then)で失敗を閉じ込める。

コード(Emacs)

local B S1 S2 in
   thread try B=true catch _ then S1=error end end
   thread try B=false catch _ then S2=error end end
   if B then {Browse yes} end
   {Browse [S1 S2]}
end

出力結果(Emacs, Oz Compiler)

Mozart Compiler 2.0.0-alpha.0+build.4105.5c06ced (Tue, 2 Sep 2014 18:39:07 +0200) playing Oz 3

local B S1 S2 in
   thread try B=true catch _ then S1=error end end
   thread try B=false catch _ then S2=error end end
   if B then {Browse yes} end
   {Browse [S1 S2]}
end
% -------------------- accepted

0 コメント:

コメントを投稿