Может кто-нибудь сказать мне, что идет не так в этом коде!
testit :- read(Term1), read(Term2), (Term1 == Term2) -> write(Term1); write(Term2).
?- testit. 7. 8. _L139. true. ____
Как я могу напечатать значение Term2 в другой части .???
(;) / 2 имеет другой приоритет оператора, чем вы думаете. Используйте скобки, чтобы получить предполагаемую вложенность:
testit :- read(Term1), read(Term2), ( Term1 == Term2 -> write(Term1) ; write(Term2) ).