我决定研究一些逻辑编程,我偶然发现了一个问题.它在SWI Prolog中编程.
test(A, B, N):-
nonvar(B),
B = final,
true.
test(A, B, N):-
N > 2,
test(A, final, N).
test(A, B, N):-
N1 is N + 1,
test(N1, B, N1).
Run Code Online (Sandbox Code Playgroud)
它只是一个没有实际用途的样本,除非它让我发疯.
问题是当代码达到真时,它开始追溯并回答"真".但我需要"返回"价值A.我该怎么做?