Liste de Longueur en Prolog

Je suis débutant dans le Prologue de la programmation.
J'ai écrit ce programme pour calculer la longueur d'une liste. Pourquoi est ci-dessous le programme de mal?

length(0, []).
length(L+l, H|T) :- length(L, T).

J'ai écrit ci-dessous le programme et qu'il fonctionne correctement.

length([], 0).
length([H|T], N) :- length(T, N1), N is N1+1.

quand j'ai changé l'ordre, j'ai eu une erreur. Pourquoi?

length([], 0).
length([H|T], N) :- N is N1+1, length(T, N1).

OriginalL'auteur Fery | 2013-10-07