1

当我们谈论匿名变量时,我有一个小问题。例如,当我们这样做时:

?- [_,2]=[X|Y].
Y=[2].

但我的问题是关于变量 X。它有 '_' 吗?

4

1 回答 1

2

不,X没有“有_”。它绑定到一个匿名变量,该变量永远不会绑定到其他任何东西。这种X对匿名变量的绑定不会产生任何额外的限制X- 出于所有实际目的,它仍然是未绑定的。

引入该_变量是为了让 Prolog 编码人员在代码中表达他们不关心特定位置的值。可以通过使用看起来像UNUSED1,UNUSED2等的变量UNUSED3而不是 ,来模拟这种行为_,并忽略 Prolog 关于单例变量的警告:

[UNUSED123,2]=[X|Y].

使用下划线_就像告诉 Prolog 你知道未使用的变量是单例的,这确实是你的意图。

于 2014-05-18T11:51:09.683 回答