【问题标题】:How to trace built-in append/3 in SWI-Prolog?如何在 SWI-Prolog 中跟踪内置的 append/3?
【发布时间】:2017-06-03 11:57:26
【问题描述】:

我想在 SWI-Prolog 中跟踪内置的 append/3,但我立即得到结果,看不到中间发生了什么。

我需要做些什么来启用追加跟踪吗?

 ?- trace .
true.

[trace]  ?- append([a,b,c], [[],[2,3], b], X).
X = [a, b, c, [], [2, 3], b].

【问题讨论】:

  • 为什么要追踪append/3?如果你只是想知道它是如何工作的,可以在线获取 SWI Prolog 源代码。

标签: prolog swi-prolog


【解决方案1】:

在 SWI-Prolog 中,append/3 谓词在包含指令的 lists 模块中定义:

:- set_prolog_flag(generate_debug_info, false).

这个 SWI-Prolog 专有指令指示编译器跳过模块内任何谓词定义的跟踪。如果您在 SWI-Prolog 安装 中注释掉 lists.pl 文件中的指令,那么您应该能够跟踪对 append/3 谓词或模块中定义的任何其他谓词的调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    相关资源
    最近更新 更多