两个术语的比较

ani*_*ebs 1 prolog

有人能告诉我这段代码出了什么问题!

testit :- read(Term1),  
            read(Term2),  
    (Term1 == Term2) ->  
    write(Term1);  
        write(Term2).
Run Code Online (Sandbox Code Playgroud)
?- testit.  
7.  
8.  
_L139.  
true.  
____
Run Code Online (Sandbox Code Playgroud)

我如何在else部分打印Term2的值.???

mat*_*mat 5

(;)/ 2具有与您想象的不同的运算符优先级.使用括号来获得预期的嵌套:

testit :-
        read(Term1),
        read(Term2),
        (   Term1 == Term2 ->
            write(Term1)
        ;   write(Term2)
        ).
Run Code Online (Sandbox Code Playgroud)