Прошлое довольно давно, так как я имею дело с проблемой маркировки в прологе Sicstus. Я хочу создать массив длиной 7, где каждый элемент снова представляет собой массив из 4 целых чисел. Я пробовал следующий код, но он не работает и дает ошибку создания.Sicstus prolog: маркировка списка в списке
:- use_module(library(clpfd)).
schedule(Ss) :-
length(Ss, 7),
Ss = [[A, B, C, D]|T],
solve_days(Ss),
labeling([], Ss).
solve_days([]).
solve_days([[A, B, C, D]|T]):-
A in 1..3,
B in 4..7,
C in 7..9,
D in 6..10,
solve_days(T).
Может ли кто-нибудь дать мне совет, как его решить? Большое спасибо!
От http://sicstus.sics.se/sicstus/docs/latest4/html/sicstus.html/Membership- Constraints.html # Membership-Constraints домен/3 предназначен для списка переменных. Для одиночных переменных следует использовать «in». Не забудьте также установить T-домен. – hakank
Спасибо, hakank. Я внес некоторые изменения. Sicstus prolog говорит, что ошибка типа в аргументе 2 пользователя: labeling/2 ! ожидал целое число, но нашел [_128, _130, _132, _134] ! target: labeling (user: [], [[_ 128, _130, _132, _134], [_ 13 –
Переименован tite из «array» в «list» по причинам. –