2016-11-27 48 views
1

我在爲我的序言程序制定了這條規則,當被調用時應列出每個可以包含的澆頭數量。它不能低於或高於40序言成員謂詞每個條目的重量

pizza(P, S, B, O, M) :- 
    member(P, [0,1,2,3,4,5,6,7,8,9,10]), 
    member(S, [0,1,2,3,4]), 
    member(B, [0,1,2,3,4,5,6]), 
    member(O, [0,1,2,3,4,5,6,7,8]), 
    member(M, [0,1,2,3,4,5]), 
    X is 4*P + 10*s + 6*B + 5*O + 7*M, 
    X =< 40, 
    Y is 40-X. 

它一直在產生這個錯誤。

ERROR: is/2: Arithmetic: `s/0' is not a function

,當我嘗試使用調用該函數pizza(1, S, 1, O, M).

回答

1

我想這

X is 4*P + 10*s + 6*B + 5*O + 7*M, 

X is 4*P + 10*S + 6*B + 5*O + 7*M, 

我的意思是這樣寫:一個大寫S代替小寫s