想象一下,我有以下知识库,为每个人提供他的名字和年龄.
person(mary, 39).
person(john, 24).
person(sandy, 17).
Run Code Online (Sandbox Code Playgroud)
现在,我想找回所有超过20年的人.此外,我只想收集他们的名字,而不是他们的年龄.在这里,我想要检索mary和john.
如何在Prolog中更常见,更具体地说在SWI-Prolog中?
如果我们使用非匿名变量,例如:
?- person(X, Y), Y > 20.
Run Code Online (Sandbox Code Playgroud)
Prolog会给我两者的价值X,Y而且我不想要Y.
我不能使用匿名变量,_因为Prolog无法链接其两个实例.以下是错误:
?- person(X, _), _ > 20.
Run Code Online (Sandbox Code Playgroud)
那么,怎么做呢?