0
所以基本上这里是我写的一些Prolog代码,使用GNU-Prolog 1.4.4。为什么我不能比较这样的两个原子?
A is 1,
B = (A == 2),
B == no.
A is 2,
B = (A == 2),
B == no.
我所预料到的是,当A
为2,那么B == no
回报no
,当A
为1,则B == no
回报yes
。
然而,出乎我的意料,无论是两段代码返回no
,这留给我的印象是B == no
作品以意想不到的方式..
所以基本上我怎么能写我想要的方式的代码?
任何人都可以给我一些帮助吗?
随着B =(A == 2)你边界表达式A == 2至B(总是如此)。这与评估A == 2是不同的。然后你问序言B是否等于'否',因此连词总是假的。我认为你必须检查绑定和自由变量的概念,以及谓词评估原则。 – Manolo