如何在SWI-Prolog中跟踪内置append / 3?

时间:2017-06-03 11:57:27

标签: prolog swi-prolog

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

我是否需要做任何事情来启用跟踪追踪?

 ?- trace .
true.

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

2 个答案:

答案 0 :(得分:6)

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

:- set_prolog_flag(generate_debug_info, false).

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

答案 1 :(得分:1)

无法跟踪内置Prolog功能