我想跟踪SWI-Prolog中内置的append / 3,但是我立刻得到了结果,看不到中间发生了什么。
我是否需要做任何事情来启用跟踪追踪?
?- trace .
true.
[trace] ?- append([a,b,c], [[],[2,3], b], X).
X = [a, b, c, [], [2, 3], b].
答案 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功能