我发现很难为这个问题提出标题,所以我会尽力解释我的问题。
在Prolog中,您可以在谓词中使用_运算符来获取所有定义,无论其中存在什么定义,在我的示例中:
%footballer is in the form: footballer(lastname,team,goals_scored)
%footballer(N,T,G).
footballer(rooney,manchesterutd,15).
footballer(ronaldo,madrid,20).
footballer(bale,madrid,17).
footballer(messi,barca,25).
在这里,如果我想找到所有为马德里效力的球员,我可以使用:
footballer(X,madrid,_).
无论得分如何,它都将归还感兴趣的球员。
然而,我真正想要的是给予预定义的队伍马德里,所有不属于马德里的队员。类似的东西:
footballer(X,not(madrid),_).
这样的事情存在吗?我正在使用Prolog版本5.10.2。
由于
答案 0 :(得分:4)
你想要语法不平等:
?- dif(T, madrid), footballer(X, T, _).