Я хочу создать список, состоящий из N
элементов. я пишу следующий код:Пролог. Не создает список
DOMAINS
list = integer*
PREDICATES
create(integer, integer, list)
CLAUSES
create(_, 0, []).
create(Start, End, [Start|T]):-
Start < End + 1,!,
Counter = Start + 1,
create(Counter, End, T).
GOAL
create(1, 5, L).
Но он возвращает мне No Solution
.
С другой стороны, если изменить направление моей Counter
так:
DOMAINS
list = integer*
PREDICATES
create(integer,list)
CLAUSES
create(0,[]).
create(N,[N|T]):-
N > 0,
NN = N - 1,
create(NN,T).
GOAL
create(5,L).
возвращает мне 1 Решение: L=[5,4,3,2,1]
. Он работает хорошо, но не в порядке. Что случилось в моем первом варианте кода?