【发布时间】:2018-03-20 15:18:02
【问题描述】:
我是一名正在学习 Prolog 的高中生,但在一个目标上遇到了错误。
我有以下事实:
character(jim).
character(jenny).
character_type(jim, prince).
charcter_type(jenny, princess).
skill(fly).
skill(invisibility).
has_skill(jim, fly).
has_skill(jenny_invisibility).
pet(jim, horse).
pet(jenny, bird).
animal(horse).
animal(bird).
我想获得所有公主角色的宠物。我正在尝试:
pet(character_type(_, princess), X).
没有成功的结果。任何帮助表示赞赏。
【问题讨论】:
-
Prolog 中任何以小写字母开头的都是原子的,而不是变量。所以
pet(character_type(_, princess), X).失败了,因为您拥有的两个pet事实都不会与该术语统一。它们不会统一,因为jim不匹配character_type(_, princess)和jenny不匹配character_type(_, princess)。
标签: prolog