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

921*_*iyo 3 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].
Run Code Online (Sandbox Code Playgroud)

Pau*_*ura 6

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

:- set_prolog_flag(generate_debug_info, false).
Run Code Online (Sandbox Code Playgroud)

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