Prologで考えるのが難しいです。このステートメントについて誤っているもの:Prologでのリストと再帰の理解
numberList([], 0).
numberList([H|T], Limit) :-
H is Limit,
numberList(T, Limit - 1).
私は
?- numberList(X,Limit).
がX = [100, 99, 98, ..., 1].
をもたらすであろう、すなわち、限界のために与えられた値のための唯一の解決策として
?- numberList(X, 100).
を[Limit, Limit-1 ... 1]
を決定したいと思います。
私の推測では、これが機能しないために私の理解にはかなり間違ったことがあります。私は自分がしようとしていることに対する解決策を必ずしも求めているわけではありません。なぜ私の最初の試みが間違っているのか理解したいだけです。
短い答え: '? - A-1 = 0'は失敗します。 '? - A-1 is 0 'も失敗する。あなたは何をしたいのですか?長さ(X、5)、X = [5 | _T]、(_T、[_]、_ Z)、maplist(succ、_Z、X) –