prolog trace如何使用

Ali*_*lov 3 trace prolog

跟踪prolog程序时如何走第二步?例如,我想跟踪以下简单程序:

length1([],0).
length1([_X|Xs],N):- length1(Xs,N1), N is N1+1.
Run Code Online (Sandbox Code Playgroud)

我跟踪程序:

?- trace,length([1,2,3],N).
Call: (7) length([1, 2, 3], _G231) ? 
Exit: (7) length([1, 2, 3], 3) ? creep
N = 3.
Run Code Online (Sandbox Code Playgroud)

但正如我们所见,它立即给出答案.但我认为它应该像Call:(8) ... Call:(9) ...我做错了什么?

twi*_*rer 5

看着你的目标,你使用了内置的length/2,而不是你自己的length1/2.内置函数通常无法跟踪.