например, я создаю список после
length(List,5),
List :: 1..5,
Я хочу установить второй элемент списка, он выглядит как List[1] :: 1..2 %List, от 0 до 4
Я не знаю, как это понять?
Спасибо большое :)
например, я создаю список после
length(List,5),
List :: 1..5,
Я хочу установить второй элемент списка, он выглядит как List[1] :: 1..2 %List, от 0 до 4
Я не знаю, как это понять?
Спасибо большое :)
Например, используя оператор in в Swi-прологе, я могу сделать так:
init_static(List) :- length(List, 5), List in 1..5, List = [_,Y|_], Y in 1..2.
если я заранее знаю, что мне нужны определенные ограничения для второго элемента.
Чтобы обобщить для любого индекса:
init_dynamic(I, List) :- length(List, 5), List in 1..5, length(L1, I), Y in 1..2, append(L1, [Y|_], List).
Таким образом, запрос для второго элемента:
init_dynamic(1, [1,2,4,3,5]).
true.
Я предполагаю, что вы можете делать подобные вещи с оператором :: в других вариантах Пролога.