【问题标题】:How to get a numeric value from the consulting file in Prolog?如何从 Prolog 中的咨询文件中获取数值?
【发布时间】:2020-08-13 02:49:54
【问题描述】:

我对 Prolog 很陌生,正在尝试编写一个规则来找到一个有更多钱的人。我正在查阅一个看起来像这样的文件:

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

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

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

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

【问题讨论】:

    标签: prolog prolog-toplevel


    【解决方案1】:

    Prolog 谓词不是函数。没有“返回”值的 money 函数。要从 Prolog 谓词中“获取”值,您可以使用变量作为参数调用它们。

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

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

    【讨论】:

      猜你喜欢
      • 2015-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多