是否有#34;通配符"运算符在Prolog中特别找不到指定的项目?

时间:2015-02-26 19:57:32

标签: prolog prolog-dif

我发现很难为这个问题提出标题,所以我会尽力解释我的问题。

在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。

由于

1 个答案:

答案 0 :(得分:4)

你想要语法不平等:

?- dif(T, madrid), footballer(X, T, _).