我在Prolog中思考困難。什麼是不正確對本聲明:瞭解Prolog中的列表和遞歸
numberList([], 0).
numberList([H|T], Limit) :-
H is Limit,
numberList(T, Limit - 1).
我想
?- numberList(X,Limit).
確定[Limit, Limit-1 ... 1]
作爲用於限制在給定值的唯一解決方案,即
?- numberList(X, 100).
會產生X = [100, 99, 98, ..., 1].
。
我的猜測是,有一些漂亮的錯我的理解這裏這並不奏效。我不一定要求解決我所要做的事情,我只想了解爲什麼我的第一次嘗試是錯誤的。
簡短回答:??A-1 = 0失敗。 '? - A-1是0.'也失敗了。 '? - length(X,5),X = [5 | _T],append(_T,[_],_ Z),maplist(succ,_Z,X).'做你想要的。 –