我是Prolog中的新手,我對理解遞歸如何工作有些問題。在prolog中使用append遞歸
我想要做的是創建一個數字列表(以便以後繪製圖形)。
所以我有這樣的代碼:
nbClassTest(0, _).
nbClassTest(X, L) :-
numberTestClass(A,X),
append([A], L, L),
X is X - 1,
nbClassTest(X, L).
但它一直給我「假」作爲答案,我不明白爲什麼它不填充列表。它應該結束,如果X達到0的權利?
numberTestClass(A,X)給了我一個數字(在變量A中)一些X,就像它是一個函數一樣。
使用'trace.'逐步執行代碼的嘗試。 ('notrace'關閉) – keyser
以下是找到問題的一般方法:首先設置'set_prolog_flag(occurrence_check,error)'。然後運行您的查詢。它會產生一個錯誤,因爲目標爲'append/3',如其他答案所示 – false