2015-08-15 38 views
1

这是事实陈述和规则:如何在Prolog规则语句中添加2个变量?

%Fact statement 
fare(asiawing,kch_brisbane,adult,330). 
fare(asiawing,kch_brisbane,child,180). 
fare(asiawing,kl_paris,adult,690). 
fare(asiawing,kl_paris,child,550). 

%Rule statement 
totFareAsiaWing(T,D,C) :- 
    fare(asiawing,D,C,F), 
    T is F*1.45. 

totAmountAsiaWing(Z,D) :- 
    ( write('num of adult passenger :'), 
     read(X), 
     number(X), 
     totFareAsiaWing(T,D,adult), 
     Z1 is X*T 
    ; write('num of child passenger :'), 
     read(Y), 
     number(Y), 
     totFareAsiaWing(T,D,child), 
     Z2 is Z1+Y*T, 
     write(Z2) 
    ). 

如何添加Y*TZX*TZ?我想补充,但它给了我

ERROR: is/2: Arguments are not sufficiently instantiated 
+0

我做到了,但它给了我错误:is/2:参数没有被充分实例化。 - @ lurker – Rez

+0

“is”右边的所有变量都必须有一个值,否则你会得到那个错误。所以你需要确保'T','X'和'Y'首先有值。 – lurker

+0

那么,我的代码是否正确?我已经填充了'X'和'Y'值。 'T'也一样。但它不断执行该错误。 – Rez

回答