标签: prolog resolution unification
为什么这会失败L is [1,2,3,4],这有效:L = [1,2,3]?
L is [1,2,3,4]
L = [1,2,3]
但是L is 1和L = 1都是一样的。
L is 1
L = 1
答案 0 :(得分:26)
is。 即:
is
X is 1 + 2 + 3
is/2将右手结构评估为算术表达式。如果它不是有效的算术表达式或数字,is/2将失败。否则,算术表达式评估的数字与[推测]未绑定的左手值统一。
is/2