N is N1 + 1, since these variables are never unified.
, , , .. . , . , REPL:
?- N = N1.
N = N1.
while N N1 (), ; N1 , N . , :
?- [H|T] = L, L = [1|M], writeln(H).
1
H = 1,
T = M,
L = [1|M].
, N N1+1! is N1+1 , N. , size([b,c,d],N1) , N1.
, :
size([a,b,c,d],N).
size([b,c,d],N1)
size([c,d],N1)
size([d],N1)
size([],0)
N is 0+1.
N is 1+1.
N is 2+1.
N is 3+1.
, ; , .
, N1 , is . - :
size([],0).
size([_|T], 1+ N1):-size(T,N1).
:
?- size([1,2],N).
N = 0+1+1.
, ? N, . size([1,2],N), Result is N. , 0+1+1+1+1+...... , . , , . .