Próbuję napisać predykat Prolog (CLP), który zbuduje ograniczenie ograniczające nierówność dwóch list.Lista ograniczenia nierówności
Bardziej formalnie, mając dwie listy A=[A1,...,AN], B=[B1,...,BN]
ograniczenie definiowane jest jako (A1 #\= B1) #\/ (A2 #\= B2) #\/ ... #\/ (AN #\= BN)
.
Nie jestem pewien, jak zbudować to ograniczenie, biorąc pod uwagę dwie listy o dowolnej długości. To jest moja próba. Rozumiem, dlaczego to nie działa, ale nie można go naprawić.
any_different([], []).
any_different([H1|T1], [H2|T2]):-
H1 #\= H2 #\/ any_different(T1, T2).
Dziękuję. To jest idiom, którego szukałem. – mscavnicky