<div class="notebook"> <div class="nb-cell markdown" name="md1"> # 05.04. Listenlänge bestimmen Warum führen die folgenden beiden Prädikate bei der Anfrage ``?- len1([a,b,c],L)`` bzw. ``?- len2([a,b,c],L)`` zu einem Abbruch? Schauen sie sich den Trace schrittweise an. </div> <div class="nb-cell program" data-background="true" name="p1"> accLen([],Acc,Acc). accLen([_|T],Acc,L):- accLen(T,NewAcc,L), NewAcc is Acc+1. </div> <div class="nb-cell program" data-background="true" name="p2"> % ohne Akkumulator: len1([],0). len1([_|T],N):- N is X+1, len1(T,X). % mit Akkumulator: len2(List,Int):- accLen(List,0,Int). </div> <div class="nb-cell query" name="q1"> trace,len1([a,b,c],L). </div> <div class="nb-cell query" name="q2"> trace,len2([a,b,c],L). </div> </div>