3 == X.
会导致答案'不',但
3 =:= X
会导致错误:
! Instantiation error in argument 2 of (=:=)/2
! goal: 3=:=_409
为什么会这样?当一个是未实例化的变量时,它们是否应该表现相同?
答案 0 :(得分:4)
=:=/2
将评估表达式并比较结果 - 因此它不能包含任何未完全实例化的术语。
换句话说,X =:= Y
类似于EX is X, EY is Y, EX = EY
- 但它也会进行隐式转换,例如1 =:= 1.0
评估为真。