2012-04-28 68 views
2

我是Prolog中的新成員。 我知道排列的遞歸函數,即:序言排列函數

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

我想知道在最後一次迭代這個功能的邏輯樹,當我們收到per([],[])哪個元素回來。

回答

3

索尼婭 - 你沒有給我們'del'謂詞,所以我們不能運行它並告訴你。

你知道嗎有一個'痕跡'謂詞傾倒每一步/決定點/回溯?

只要做到:

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

然後按ENTER鍵,直到你看到序言比賽遞歸的基礎([],[]),然後繼續按Enter鍵觀看它完成任務。

如果在任何時候你想看到顯示爲點結束生成縮寫列表(即列表[..],然後按「W」 - 寫傾倒了整個列表內容

然後最後,這樣做:

notrace. 

要關閉

,然後如果你有關於跟蹤的具體問題,建議增加在缺少謂語,並顯示你周圍有問題的部分痕跡

+0

不,我不知道追蹤。感謝magus。 – 2012-04-29 06:25:22