【问题标题】:How use Goal in SWI-Prolog如何在 SWI-Prolog 中使用目标
【发布时间】:2015-04-17 07:08:28
【问题描述】:

在 TurboProlog 中我们可以使用下一个构造:

goal:
  father('Tom', X).

如何在 SWI-Prolog 中使用相同的?

【问题讨论】:

  • Turbo Prolog 在这里很特别。大多数其他系统都将initialization/1 作为指令。

标签: prolog


【解决方案1】:

如果我记得 goal 做了什么,我建议使用内置的 ISO-Prolog initialization/1

加载该指令所在的源文件后调用Goal已经完成。

:- initialization((father('Tom', X), writeln(X))).

我添加了获得值的可视化 - 如果有的话。还应该添加一些错误处理...

【讨论】:

    【解决方案2】:

    我们如何调用 2 个或多个 Goal?

    下一个代码调用错误:

    :- initialization(
           (grandmother('Sarah', X), writeln(X)),
           (father('Tom', Y), writeln(Y))
        ).
    

    【讨论】:

    • 您的代码本质上是::- initialization(A,B). 尝试使用:- initialization((A,B)).。或者,您可能想要给出几个initialization 指令 - 请记住它们的执行顺序是“实现定义的”。 IE。查看你的实现在上面说了什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多