Ссылка на предикаты в Прологе использует обозначение Name/Arity
, где Arity
- количество аргументов. Поэтому вместо написания firstPred()
и secondPred()
пишите вместо firstPred/1
и secondPred/1
. Еще лучше, следуя рекомендациям по кодированию Prolog, используйте подчеркивание вместо CamelCase при именовании предиката.
Чтобы ответить на ваш вопрос, вам нужно определить предикат для проверки вашего состояния. Этот предикат будет принимать два аргумента. Прямой перевод вашего состояния будет:
condition(A, B) :-
( first_predicate(A),
second_predicate(B)
; first_predicate(B),
second_predicate(A)
).
Но это не считается хорошим стилем, и вместо него предпочтительнее использовать два предложения:
condition(A, B) :-
first_predicate(A),
second_predicate(B)
condition(A, B) :-
first_predicate(B),
second_predicate(A).
Обратите внимание, что это решение предполагает, что дизъюнкция в условии не является исключительной дизъюнкцией. Это тот случай?