Prolog を使用してアインシュタインのなぞなぞを解こうとしています。ハウス(Hs)で実行しようとすると、Noと表示されます。タスクは
- イギリス人は赤い家に住んでいます。
- スウェーデン人は犬をペットとして飼っています。
- デーンはお茶を飲みます。
- グリーン ハウスはホワイト ハウスのすぐ左側にあります。
- グリーンハウスのオーナーはコーヒーを飲みます。
- ポールモールを吸うオーナーが鳥を飼っています。
- 黄色い家のオーナーはダンヒルを吸っている.
- センターハウスに住むオーナーは牛乳を飲んでいます。
- ノルウェー人は最初の家に住んでいます。
- ブレンドを吸う飼い主と、猫を飼っている飼い主の隣に住んでいます。
- 馬を飼っているオーナーと、ダンヒルを吸っているオーナーの隣に住んでいます。
- ブルーマスターズを吸うオーナーはビールを飲む。
- ドイツ人はプリンスを吸う。
- そのノルウェー人は青い家の隣に住んでいます。
- ブレンドを吸うオーナーは、水を飲む人の隣に住んでいます。
住宅(Hs) :- 長さ(Hs, 5), member(h(英語,_,_,_,red), Hs), member(h(swede,dog,_,_,_), Hs), member(h(_,_,_,coffee,green), Hs), member(h(dane,_,_,tea,_), Hs), next(h(_,_,_,_,緑), h(_,_,_,_,白), Hs), member(h(_,bird,'ポールモール',_,_), Hs), member(h(_,_,'ダンヒル',_,yellow), Hs), Hs = [_,_,h(_,_,_,牛乳,_),_,_], Hs = [h(ノルウェー語,_,_,_,_)|_], next(h(_,horse,_,_,_), h(_,_,'ダンヒル',_,_), Hs), next(h(_,_,blend,_,_), h(_,cat,_,_,_), Hs), member(h(_,_,'ブルーマスター',beer,_), Hs), member(h(ドイツ語,_,'プリンス',_,_), Hs), next(h(ノルウェー語,_,_,_,_), h(_,_,_,_,青), Hs), next(h(_,_,'ブレンド',_,_), h(_,_,_,water,_), Hs), メンバー(h(_,fish,_,_,_), Hs)。 next(A, B, Ls) :- append(_, [A,B|_], Ls)。 next(A, B, Ls) :- append(_, [B,A|_], Ls).
何が悪いのかわかりません。ありがとう