两个术语的比较

时间:2011-02-20 18:31:55

标签: prolog

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

testit :- read(Term1),  
            read(Term2),  
    (Term1 == Term2) ->  
    write(Term1);  
        write(Term2).

?- testit.  
7.  
8.  
_L139.  
true.  
____

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

1 个答案:

答案 0 :(得分:5)

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

testit :-
        read(Term1),
        read(Term2),
        (   Term1 == Term2 ->
            write(Term1)
        ;   write(Term2)
        ).