我是Prolog編程的初學者。 我編寫了這個程序來計算列表的長度。爲什麼下面的程序錯了?Prolog中的列表長度
length(0, []).
length(L+l, H|T) :- length(L, T).
我寫下面的程序,它工作正常。
length([], 0).
length([H|T], N) :- length(T, N1), N is N1+1.
當我改變了順序,我得到了一個錯誤。爲什麼?
length([], 0).
length([H|T], N) :- N is N1+1, length(T, N1).
儘管這段代碼可以回答這個問題,提供 附加的上下文有關_why_和/或_how_它回答 問題將顯著改善其長期 值。請[編輯]你的答案,添加一些解釋。 –