我正在阅读“立即学习 Prolog”,其中一个我自己无法解决的练习如下:
有一条街道,有三个相邻的房子,它们都有不同的颜色。它们是红色、蓝色和绿色。不同国籍的人住在不同的房子里,他们都有不同的宠物。以下是关于它们的更多事实:
- 英国人住在红房子里。
- 美洲虎是西班牙家庭的宠物。
- 日本人住在蜗牛饲养员的右边。
- 蜗牛饲养员住在蓝房子的左边。
谁养的斑马?
定义一个谓词
zebra/1
,告诉您斑马主人的国籍。提示:考虑房屋和街道的表示。在 Prolog 中对四个约束进行编码。
member
并且sublist
可能是有用的谓词。
任何想法如何在 Prolog 下对其进行编码?谢谢。