Prolog中的"="与列表一起使用。

16
为什么这个失败了L is [1,2,3,4],但这个可以运行:L = [1,2,3]
但是L is 1L = 1都可以正常工作。
1个回答

32

is应该只在右侧进行算术运算时使用。例如:

is操作符通常用于比较两个对象是否相同,而不是比较它们的值。如果要比较两个对象的值,请使用==操作符。但需要注意的是,在某些情况下(例如比较一个变量是否为None),使用is操作符更准确。

X is 1 + 2 + 3

is/2 将右侧结构作为算术表达式进行评估。如果它不是有效的算术表达式或数字,则is/2会失败。否则,计算算术表达式得到的数字将与 [推测未绑定的] 左侧值统一。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接