【发布时间】:2016-11-07 11:23:38
【问题描述】:
我有几个 Prolog 事实表明某物或某人是人、位置或对象。我有一个子句 go(person,location) 表示一个人从他们所在的位置移动到子句中给定的位置。但是,当我询问相关查询以确定某人是否在某个位置时,Prolog 会根据条款对曾经在那里的每个人进行响应。我该如何编写一条规则,说明如果您在一个位置,则根据定义,您不在其他任何位置?
【问题讨论】:
-
旧样式是
update_person_pos(Pers, Pos) :- retract(person(Pers, _Old)), assert(person(Pers, Pos)).