Я пытаюсь написать предикат Prolog (CLP), который построил бы ограничение, ограничивающее неравенство двух списков.
Более формально, имея два списка A=[A1,...,AN], B=[B1,...,BN]
, ограничение определяется как (A1 #\= B1) #\/ (A2 #\= B2) #\/ ... #\/ (AN #\= BN)
.
Я не уверен, как построить это ограничение, учитывая два списка произвольной длины. Это моя попытка. Я понимаю, почему это не работает, но не может это исправить.
any_different([], []).
any_different([H1|T1], [H2|T2]):-
H1 #\= H2 #\/ any_different(T1, T2).