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