2017-04-19 87 views
1

我正在編寫一個prolog程序,我需要找出一個數字是偶數還是奇數。我試圖做一個謂詞,它包含一個數字,對它進行修改,如果它成功了,那麼它會失敗,這很奇怪。Mod或Predicate總是失敗

我的代碼如下所示:

modNum(num):- 
    0 =:= mod(num, 2). 

但是即使我進入6,這是假的。如果我輸入3,這是錯誤的。我嘗試過在網上找到一個解決方案,但沒有一個答案似乎與mod有關,所以我不知道我是否在做這個部分的錯誤。

更新:我已經改變了這種功能

modNum(num):- 
    6 =:= 6. 

,它仍然失敗。我不知道我的mod是否仍然不正確,但爲什麼我的謂詞在6是6時失敗,所以應該成功並打印爲真。

回答

0

在Prolog中,變量名稱必須以大寫字母開頭。你寫的num實際上是一個符號,而不是一個變量。比較典型的如下代碼:

loves(hans, lisa). 
loves(lisa, spicy_food). 

現在有變量:

loves(Who, What) :- 
    Who = hans, 
    What = lisa.