【问题标题】:SWI-Prolog dynamic/1 vs dynamic/2SWI-Prolog 动态/1 与动态/2
【发布时间】:2014-04-22 17:39:39
【问题描述】:

我正在自学 Prolog,并获得了一些示例。

其中一个使用dynamic/1 内置指令:

:- dynamic(items/1).

我明白动态的概念。那可以通过断言修改谓词,并收回谓词。

但是,该程序在某些地方也使用了以下内容:

:- dynamic(location/2).

这两个/1和/2有什么区别,它们也是一个/3 .... /n吗?

【问题讨论】:

    标签: prolog prolog-directive-dynamic


    【解决方案1】:

    在 Prolog 中,谓词由它们的名称(或函子)它们的参数数量(或数量)来标识。因此,items/1 表示具有函子items 和arity 1 的谓词,而location/2 表示具有函子location 和arity 2 的谓词。具有相同函子但元数不同的两个谓词是不同的谓词。

    【讨论】:

    • 完美答案也是重点。我现在完全明白了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 2018-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    相关资源
    最近更新 更多