2016-11-27 5 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.