最近の更新 (Recent Changes)

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

Wikiガイド(Guide)

サイドバー (Side Bar)


← 前のページに戻る

0.6 ロミオとジュリエット

ロミオとジュリエットの関係を推論するログラムを作成します。


// ロミオとジュリエットの関係

#xが#yを好きで、#yが#xを好きならば、
#xは#yの恋人である。

#xが#yの恋人ならば、#yは#xの恋人である。


ジュリエットはロミオを好き。
ロミオはジュリエットが好き。

ロミオはジュリエットの恋人か?

ジュリエットはロミオの恋人か?


これは短くて判りやすいと思います。

お互いが好きであるという事実から、恋人関係であることを推論します。

上のプログラムはsamples/juliet.mrsに入っているとします。

実行しましょう。


$ descartes murasaki samples/juliet.mrs
 
ロミオはジュリエットの恋人か?
ロミオは、ジュリエットの恋人です。

ジュリエットはロミオの恋人か?
ジュリエットは、ロミオの恋人です。

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


 <M2 恋人 #x (#y)> <M1 好き #x (#y)> <M1 好き #y (#x)>
        ;
 <M2 恋人 #y (#x)> <M2 恋人 #x (#y)>
        ;
 <M1 好き ジュリエット (ロミオ)>
        ;
 <M1 好き ロミオ (ジュリエット)>
        ;
? <printf 'ロミオはジュリエットの恋人か?' <\_n>>;
? <回答 (<M2 恋人 ロミオ (ジュリエット)>)>;
? <print>;
? <printf 'ジュリエットはロミオの恋人か?' <\_n>>;
? <回答 (<M2 恋人 ジュリエット (ロミオ)>)>;
? <print>;



--

--