gen(N,R)
:
R
是 0 到 N-1 之间的值,按顺序。
N
非零正整数。N
将永远给予。
例如:?- genN(2,R)
。给R=0;R=1.
我这样实现,但它有“本地静态错误”:
gen(X,0).
gen(X,R) :-
gen(X,R1),
R is R1+1,
R<X, % why this line
R>=0. % and this line can't keep the range successfully?
结果:
?- genN2(3,R).
R = 0 ;
R = 1 ;
R = 2 ;
ERROR: Out of local stack