2016-11-20 33 views
0

假設我在swi-prolog中創建瞭如下的函數。在Prolog編程中始終寫入初始值

function1(param) :- VALUE is 0, findValue(VALUE), write(VALUE).

然而總是打印出來。 findValue函數在邏輯上是正確的。'

是否無法使用計算的值在函數1

回答

0

忽略VALUE is 0

通過說明它的功能findValue將設置根據VALUE變量的休息,因爲您提供的索賠第一是公理級真實的,其餘的與它們對應。

例如,採取

func(X):- X is 0. 

如果查詢func(X).它會導致X=0,因爲它假定要進行分配。

但是,如果您使用像func(0).這樣的號碼進行查詢,它將檢查是否X==0,從而導致布爾答案。

+0

但是,解釋器顯示錯誤信息。 '參數沒有被充分實例化。' – newbie16

+0

可能是您的'findValue'方法的一個問題,您沒有包括。添加它。 – Uriel