当我们谈论匿名变量时,我遇到了一个小问题。例如,当我们这样做时:
?- [_,2]=[X|Y].
Y=[2].
但我的问题是关于变量X.它是否有'_'?
答案 0 :(得分:2)
不,X
没有“_
”。它绑定到一个匿名变量,它永远不会绑定到任何其他变量。 X
与匿名变量的绑定不会对X
产生任何其他限制 - 出于所有实际目的,它仍然是未绑定的。
引入_
变量是为了让Prolog编码员在代码中表达他们不关心特定位置的值。可以通过使用看起来像UNUSED1
,UNUSED2
,UNUSED3
等等而不是_
的变量来模拟此行为,并忽略有关单例变量的Prolog警告:
[UNUSED123,2]=[X|Y].
使用下划线_
就像告诉Prolog你知道未使用的变量是单例,而且确实是你的意图。