关于prolog的问题

时间:2010-03-07 15:14:35

标签: prolog

我试图在某种情况下制定一些规则和事实。情况如此,如果用户欠款,那么如果他没有偿还,则说他在5天后欠债,如果他没有,那么他就是正常人。到目前为止,我正在尝试类似的事情:

我有两条规则:

debtpayment_unfulfilled(X) :- owes_money(W, Amountowed, Amountpaid, Days), Days >= 7,Amountowed > Amountpaid. .
debtpayment_fulfilled(X) :- debt_paid(W,Amountowed,Amountpaid), Amountowed =:= Amountpaid.
owes_money(jim, 500, 200, 8).

但是我似乎无法编译它,XSB告诉我在第1条中有一个未绑定的变量expr ...

任何想法?编辑废料,我刚刚得到它编译大声笑,错字,顺便说一下,裁决看起来正确的尝试做什么? 当我尝试运行它时,我无法得到查询的答案:

debtpayment_unfulfilled(jim).

编辑:

可以做这样的事情:

debtpayment_unfulfilled(X) :- owes_money(X, Amountowed, Amountpaid, Days), Days >= Days + 7,Amountowed > Amountpaid.

天+ 7位还是不可能?

1 个答案:

答案 0 :(得分:1)

您的错误是您在debtpayment_unfulfilledowes_money中使用了不同的变量名称。试试这个:

debtpayment_unfulfilled(X) :- owes_money(X, Amountowed, Amountpaid, Days), Days >= 7,Amountowed > Amountpaid.
debtpayment_fulfilled(X) :- debt_paid(X, Amountowed, Amountpaid), Amountowed =:= Amountpaid.
owes_money(jim, 500, 200, 8).