У меня быстрый вопрос, который я пытался выяснить в Прологе. Есть ли способ проверить, как минимум X ошибок (или пропусков) в предикате?
Например, здесь я мог бы проверить, является ли один из баллов меньшим или равным 20, но я пытаясь проверить их все одновременно, где хотя бы один из них меньше или равен 20, без необходимости указывать 3 разных предиката, проверяющих первый результат, затем второй и затем третий отдельно.
scores(score1, 14, 60, 45).
# Checks to see if at least one of the scores is less than or equal to 20
at_least_one_fail(X):- scores(X, Y), Y > 20, scores(X, Z), Z > 20, scores(X, J), J =< 20.
at_least_one_fail(X):- scores(X, Y), Y > 20, scores(X, Z), Z =< 20, scores(X, J), J > 20.
at_least_one_fail(X):- scores(X, Y), Y =< 20, scores(X, Z), Z > 20, scores(X, J), J > 20.
(Действительно плохой пример кода, но, надеюсь, он поможет понять мой вопрос).
Любые мысли приветствуются, спасибо.