05.04. Listenlänge bestimmen
Warum führen die folgenden beiden Prädikate bei den Anfragen
?- len1([a,b,c],L)
?- len2([a,b,c],L)
zu einem Abbruch? Schaue dir den Trace an.
% ohne Akkumulator:
len1([],0).
len1([_|T],N):-
N is X+1,
len1(T,X).
% mit Akkumulator:
len2(List,Int):-
accLen(List,0,Int).
accLen([],Acc,Acc).
accLen([_|T],Acc,L):-
accLen(T,NewAcc,L),
NewAcc is Acc+1.