2016-12-26 40 views
-1
%import string 
from pylog import* 

%RULES 

AmmountEarned(_steady,_[steady|unsteady]) :- AmmountEarned(_steady,_unsteady) 


min_savings(Dependents, Amount) :- 
Amount is 5000 * Dependents. 

min_income(Dependents, Amount) :- 
    Amount is (4000 * Dependents) + 15000. 

%Strategies 
investment(savings) :- 
savings(inadequate). 

investment(stocks) :- 
savings(adequate), income(adequate). 

investment(combo) :- 
savings(adequate), income(inadequate). 

%Logic 
% 
savings(adequate) :- 
amount_saved(Amount), 
numDependents(Dependents), 
min_savings(Dependents, SavingsMin), 
Amount > SavingsMin. 

savings(adequate) :- 
numDependents(Dependents), 
Dependents == 0. 

savings(inadequate) :- 
amount_saved(Amount), 
numDependents(Dependents), 
min_savings(Dependents, SavingsMin), 
Amount =< SavingsMin. 


income(adequate) :- 
earnings(AmountEarned, steady), 
numDependents(Dependents), 
min_income(Dependents, IncomeMin), 
AmountEarned > IncomeMin. 
income(inadequate) :- 
earnings(AmountEarned, steady), 
numDependents(Dependents), 
min_income(Dependents, IncomeMin), 
AmountEarned =< IncomeMin. 

income(adequate) :- 
numDependents(Dependents), 
Dependents == 0. 
income(inadeqate) :- 
earnings(ammountEarned, unsteady). 

amount_saved(22000). 
numDependents(3). 
earnings(25000, steady). 

回答

0

程序的第一行看起來像Python,而不是Prolog。 Python和Prolog在單個文件中的混合是PyLog的一個特性嗎?

涉及AmmountEarned的行充滿了語法和邏輯錯誤。它也與該計劃的其餘部分無關。去掉它。

此外,對於將來:請在您的問題的正文中包含確切的錯誤消息,而不僅僅是標題中。如果錯誤消息指定了某個程序點(例如,行號),那麼也包括該程序點。

相關問題