2

我是 Prolog 的新手。我知道置换的递归函数,即:

per([],[]).
per(L, [X|P]) :- del(X,L,L1),per(L1,P).

per([],[])当我们收到它返回的元素时,我想知道这个函数在最终迭代中的逻辑树。

4

1 回答 1

4

Sonia - 你没有给我们“del”谓词,所以我们不能运行它并显示给你。

您是否知道有一个“跟踪”谓词可以输出每一步/决策点/回溯?

做就是了:

trace.
per([a,b], X).

然后按回车,直到看到 prolog 匹配递归的基([],[]),然后继续按回车,看它完成任务。

如果您想随时查看生成的缩写列表(即以点 [..] 结尾的列表,请按“w” - 写入以转储整个列表内容。

最后,做:

notrace.

将其关闭。

然后,如果您对跟踪有特定问题,建议添加缺少的谓词,并围绕您的问题显示部分跟踪。

于 2012-04-29T00:13:22.993 回答