gpt4 book ai didi

prolog - Prolog Rule-需要帮助以使某些工作正常进行?

转载 作者:行者123 更新时间:2023-12-02 04:17:01 26 4
gpt4 key购买 nike

我想在序言中写一条规则,该规则基本上是说,如果用户X在7天内未支付金额Y,那么它将评估为payment_outstanding(X)。

到目前为止,我有这样的事情:

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

owes_money(bob, 500, 0, 3). //bob borrowed 500 on day 3

该规则有效,但是问题是Days + 7部分,例如,在系统中,如果有人在第3天借钱,则该子句永远不会评估为true,如果Days始终为3,我该如何实现呢?我必须写一条单独的规则吗?希望你理解我想说的话。

谢谢

最佳答案

如果我正确地找到了你,那是不可能的。当bob拿走钱时,应在规则中实现owes_money(bob, 500, 0, 3).确切日期,然后将其与今天的日期进行比较。

要获取确切的日期,请查看以下谓词:get_time(-Time)。另外,为了处理时间,您可以使用:

convert_time(+Time, -String)
convert_time(+Time, -Year, -Month, -Day, -Hour, -Minute, -Second, -MilliSeconds)

我仍然不确定这不是家庭作业,我有点害怕为您提供开箱即用的解决方案。

一种快速的解决方案是像这样更改谓词 owes_money:
owes_money(bob, 500, 0, 2010, 3, 10). %2010 for the year, 3 for the month  ... 

然后将此日期与当前日期进行比较:
get_time(X), convert_time(X, CurrYear, CurrMonth, CurrDay, _, _, _, _).%CurrYear will give you current year, etc ... . You don't need the hour minutes etc .. that's why are the _

现在剩下的就是将CurrYear,CurrMonth和CurrDay与您从owes_money谓词中获得的结果进行比较,看看已经过去了多少天。

希望这会有所帮助!

关于prolog - Prolog Rule-需要帮助以使某些工作正常进行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2409043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com