2015-08-15 56 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

回答