[英]Prolog predicate doesn't resolve
這可能是一個菜鳥錯誤,但我正在嘗試解決這個問題:
使用 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”的東西
使用變量時,首字母必須大寫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.