我是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_它回答 问题将显著改善其长期 值。请[编辑]你的答案,添加一些解释。 –