Prolog 谓词无法解析



这可能是一个新秀错误,但我正在尝试解决这个问题:

找到查询以使用Findall谓词获得以下答案:获取在城市以外的其他人工作的人列表:

L = [suzy, paul].

这是数据库:

city(ottawa,ontario).
city(toronto,ontario).
city(kingston,ontario).
city(gatineau,quebec).
city(montreal,quebec).
company(shopify,ottawa).
company(rossvideo,ottawa).
company(dium,gatineau).
company(uber,toronto).
company(deepmind,montreal).
company(google,toronto).
person(annie,gatineau).
person(paul,gatineau).
person(suzy,gatineau).
person(robert,gatineau).
person(tom,ottawa).
person(tim,kingston).
person(joe,montreal).
person(jane,ottawa).
person(marie,ottawa).
person(jack,toronto).
person(simon,toronto).
employee(annie,dium).
employee(tom,shopify).
employee(jane,shopify).
employee(marie,shopify).
employee(joe,deepmind).
employee(jack,google).
employee(simon,google).
employee(suzy,shopify).
employee(paul,rossvideo).
employee(marie,rossvideo).
employee(simon,uber).

这是我试图用来解决它的谓词:

worksIn(n, Y) :-
   employee(n, Comp),
   company(Comp, Y).

,但它仅返回false。有人知道如何修复它吗?

我做到了:

worksIn(P):- person(P,CL), employee(P, CO), company(CO, CW), CL/=CW.

所以最终答案是:

findall(P, worksIn(P), L).

我不确定我们是否可以在

中添加" worksin"东西

当使用变量时,首字母必须是大写。

相关内容

  • 没有找到相关文章

最新更新