2016-11-27 4 views
1

私のプロローグプログラムのために、このルールを組み立てて、呼び出されたときにそれぞれが含まれるトッピングの数を列挙する必要があります。 40未満またはそれ以上にはならないProlog Member Predicate 1個当たりの重量

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

関連する問題