我是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