最近の更新 (Recent Changes)

2014-01-01
2013-01-04
2012-12-22
2012-12-15
2012-12-09

Wikiガイド(Guide)

サイドバー (Side Bar)


← 前のページに戻る

0.9 風が吹けば桶屋が儲かる

古来より言われている、「風が吹けば桶屋が儲かる」を論理的に示してみましょう。


// 風が吹けば桶屋が儲かる。

風が吹くならば、土ぼこりが立つ。
土ぼこりが立つならば、盲人が増える。
盲人が増えるならば、盲人は三味線を買う。
盲人が三味線を買うならば、三味線に使う猫皮が必要である。
三味線に使う猫皮が必要であれば、ネコが減る。
ネコが減るならば、ネズミが増える。
ネズミが増えるならば、ネズミが桶を囓る。
ネズミが桶を囓るならば、桶の需要が増える。
桶の需要が増えるならば、桶屋が儲かる。


// 実行

風が吹く。

ネズミが増えるか?

ネコが減るか?

桶屋が儲かるか?


ネズミとネコの増減と桶屋の儲けについて訊いていますね。

上記のプログラムをsamples/oke.mrsにあるとして実行してみましょう


$ descartes murasaki samples/oke.mrs
ネズミが増えるか?
ネズミは、増えるです。

ネコが減るか?
ネコは、減るです。

桶屋が儲かるか?
桶屋は、儲かるです。


この世界では、風が吹くとネズミが増え、ネコが減り、桶屋は儲かっています。

プログラムに書いてあった論理に従った結果になっていたか確認してみてください。

このプログラムは次に示すようなデカルト言語のプログラムにコンパイルされて実行されたものです。


 <M4 立つ 土ぼこり ()> <M4 吹く 風 ()>
        ;
 <M4 増える 盲人 ()> <M4 立つ 土ぼこり ()>
        ;
 <M1 買う 盲人 (三味線)> <M4 増える 盲人 ()>
        ;
 <M4 必要 三味線に使う猫皮 ()> <M1 買う 盲人 (三味線)>
        ;
 <M4 減る ネコ ()> <M4 必要 三味線に使う猫皮 ()>
        ;
 <M4 増える ネズミ ()> <M4 減る ネコ ()>
        ;
 <M1 囓る ネズミ (桶)> <M4 増える ネズミ ()>
        ;
 <M4 増える 桶の需要 ()> <M1 囓る ネズミ (桶)>
        ;
 <M4 儲かる 桶屋 ()> <M4 増える 桶の需要 ()>
        ;
 <M4 吹く 風 ()>
        ;
? <printf 'ネズミが増えるか?' <\_n>>;
? <回答 (<M4 増える ネズミ ()>)>;
? <print>;
? <printf 'ネコが減るか?' <\_n>>;
? <回答 (<M4 減る ネコ ()>)>;
? <print>;
? <printf '桶屋が儲かるか?' <\_n>>;
? <回答 (<M4 儲かる 桶屋 ()>)>;
? <print>;


--

--