gen(N,R)
:генерировать ряд целых чисел - "из локального стека" [начинающий]
R
это значение от 0 до N-1, в порядке. N
non-zero positive int. 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