Wikipedia でロジックパズルを引くと、こんな簡単な例題が載っている(2010/01/11現在)。これを Mozart で書いてみる。
3人のそれぞれの発言から、それぞれの今日の昼食を当ててください。ただし、カレーライス、ラーメン、そばのうちから3人とも別々のものを食べました。
トンキチ:…。
チンペイ:あいつみたいにそばだったら僕は足りないな。
カンタ:僕はカレーライスもそばも嫌いなんだ。
答えチンペイ:あいつみたいにそばだったら僕は足りないな。
カンタ:僕はカレーライスもそばも嫌いなんだ。
トンキチ:そば
チンペイ:カレーライス
カンタ:ラーメン
チンペイ:カレーライス
カンタ:ラーメン
下のコードを Oz Programming Interface に入力して、C-M-x で読み込ませると、
local Kan Chin TonOz ブラウザに
Lanch = [curry ramen soba]
NotIn = fun {$ Ex}
{Filter Lanch fun {$ X} {Not {Member X Ex}} end}
end
in
thread (Ton |_)= {NotIn [Kan Chin]} end
thread (Chin|_)= {NotIn [Kan soba]} end
thread (Kan |_)= {NotIn [curry soba]} end
{Browse [tonkichi#Ton chinpei#Chin kanta#Kan]}
end
[tonkichi#soba chinpei#curry tanta#ramen]と表示される。
うーん、まだよくわからんが Prolog とはだいぶ違う。
====
以下を参考にした
0 件のコメント:
コメントを投稿