List Prolog成员谓词每项的权重
我正在为我的prolog程序整理这个规则,当调用时,应该列出每个可以包含的浇头的数量。它不能低于或高于40List Prolog成员谓词每项的权重,list,prolog,member,List,Prolog,Member,我正在为我的prolog程序整理这个规则,当调用时,应该列出每个可以包含的浇头的数量。它不能低于或高于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
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.
比萨饼(P、S、B、O、M):-
成员(P[0,1,2,3,4,5,6,7,8,9,10]),
成员[0,1,2,3,4],
成员(B,[0,1,2,3,4,5,6]),
成员(O[0,1,2,3,4,5,6,7,8]),
成员(M[0,1,2,3,4,5]),
X是4*P+10*s+6*B+5*O+7*M,
X=<40,
Y是40-X。
它不断地产生这种错误
错误:is/2:算术:`s/0'不是函数
当我尝试使用函数调用pizza(1,S,1,O,M)时。我认为
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