у меня есть расписание предикатов (A, B, C), которое возвращает возможные перестановки в списках A, B, C с возвратом назад
?- schedule(A,B,C).
A = [im204,212,217]
B = [im209,214,218]
C = [im210,216] ? ;
A = [im204,212,218]
B = [im209,214,217]
C = [im210,216] ? ;
A = [im204,212,216]
B = [im209,214,218]
C = [im210,217] ?
У меня также есть предикат schedule_errors (A, B, C,E) который возвращает ошибки (не говоря уже о том, что такое ошибки) из списков A, B, C и E.
?- schedule_errors([im204, im209, im210], [im212, im214, im217], [im216, im218]).
E = 4 ?
В моем новом предикате
schedule_all_errors(A,B,C,E):-
schedule(A,B,C),
schedule_errors(A,B,C,E).
он возвращает возможные перестановки пос номером ошибки
?- schedule_all_errors(A,B,C,E).
A = [im204,212,217]
B = [im209,214,218]
C = [im210,216]
E = 14 ? ;
A = [im204,212,218]
B = [im209,214,217]
C = [im210,216]
E = 6 ? ;
A = [im204,212,216]
B = [im209,214,218]
C = [im210,217]
E = 12 ?
Мне было интересно, есть ли способ, которым я могу вернуть только перестановки с нулевыми ошибками.(или не возвращать любые перестановки, ошибки которых отличаются от 0)