如何从 Prolog 中的咨询文件中获取数值?

How to get a numeric value from the consulting file in Prolog?

我是 Prolog 的新手,正在尝试编写一条规则来找到有更多钱的人。我正在查阅一个如下所示的文件:

money('Henry', 200).
money('Sally', 500).
money('Tom', 50).

这是我尝试编写一个规则来找到有更多钱的人:

richer(X, Y):- money(X) > money(Y).

这是行不通的。我有点不知道如何从我正在咨询的文件中访问该数值。很抱歉这个简单的问题,但我已经尝试谷歌搜索了一段时间但没有成功。

Prolog 谓词不是函数。没有 money 函数表示“returns”一个值。要从 Prolog 谓词中“获取”值,您可以使用变量作为参数来调用它们。

所以要得到某人 X 拥有的钱,你写 money(X, XMoney)。您的谓词可以定义为:

richer_than(X, Y) :-
    money(X, XMoney),
    money(Y, YMoney),
    XMoney > YMoney.