fix length/2.

This commit is contained in:
Vítor Santos Costa 2011-10-02 19:55:12 -03:00
parent 5e0c4b923d
commit c8061d46d6

View File

@ -24,15 +24,14 @@
% length of a list. % length of a list.
length(L,M) :- var(M), !, '$$_length1'(L,0,M). length(L,M) :- ( var(M) -> '$$_length1'(L,M,0) ; '$$_length2'(L, M) ).
length(L,M) :- '$$_length2'(M,L).
'$$_length1'([], M, M). '$$_length1'([], M, M).
'$$_length1'([_|L], N, O) :- '$$_length1'([_|L], O, N) :-
M is N + 1, M is N + 1,
'$$_length1'(L, M, O). '$$_length1'(L, O, M).
'$$_length2'(N, L) :- '$$_length2'(L, N) :-
( N =:= 0 ( N =:= 0
-> ->
L = [] L = []
@ -40,7 +39,7 @@ length(L,M) :- '$$_length2'(M,L).
N > 0, N > 0,
N1 is N - 1, N1 is N - 1,
L = [_|L1], L = [_|L1],
'$$_length2'(N1, L1) '$$_length2'(L1, N1)
). ).