我想写一条规则,让我检查给定事实中是否存在电影或演员。
事实事实
starsin(ice_age,compton__doug).
starsin(hulk,wryn__rhiannon_leigh).
starsin(hulk,turman__john).
starsin(hook,mcnatt__adam).
查询输入
?- exists(ice_age).
true.
?- exists(turman_john).
true
?- exists(bob).
false
书面规则
exists(Movie,Actor) :- starsin(Movie,Actor).
我的问题是我的规则是它不检查电影或演员。我被迫输入查询:
?- exists(hulk,Y) or exists(X,turman_john)
我要检查电影或演员。帮助。
答案 0 :(得分:1)
您可以简单地检查所查询的项目是否可以与starsin/2
事实之一的第一个或第二个参数统一:
exists(Movie) :-
starsin(Movie, _).
exists(Actor) :-
starsin(_, Actor).
下划线_
是我们不关心的变量。