Я написал свой первый код CLIPS для школьного проекта, но я не знаком с CLIPS (в качестве основных языков я использую C# и python).
Это мой код и ошибки, которые я получаю:
(defrule determine-closing-date
(not (day-to-close ?))
(billing-size ?)
(unpaid-invoices-number ?)
=>
(if
(or
(< billing-size 1000000)
(< unpaid-invoices-number 1000000)
)
then (assert (day-to-close MtTh))
else (assert (day-to-close friday))
)
(defrule determine-billing-size ""
(not (billing-size ?))
(not (day-to-close ?))
=>
(printout t "¿Cuál es el tamaño de la facturacion?")
(assert (billing-size ?size (read))))
(defrule determine-unpaid-invoices-number ""
(not (unpaid-invoices-number ?))
(not (day-to-close ?))
=>
(printout t "¿Cuál es la cantidad de facturas no pagadas")
(assert (unpaid-invoices-number ?size (read))))
(defrule determine-friday-load ""
(day-to-close friday)
(not (friday-load ?))
=>
(printout t "¿Cuál es la carga de cierres para el viernes?")
(assert (friday-load ?load (read))))
(defrule determine-saturday-closing ""
(day-to-close friday)
(not(< friday-load 1000000))
=>
(assert (day-to-close saturday)))
(defrule day-to-close-conclulssion ""
(day-to-close ?)
=>
(if (eq day-to-close MtTh)
then (printout t "Se puede cerrar de Lunes a Jueves")
else (
if (eq day-to-close friday)
then (printout t "Se debe cerrar viernes.")
else (printout t "Se debe cerrar sabado.")
)
))
Ошибки:
[ARGACCES5] Функция ‹ ожидается, что аргумент №1 будет иметь тип integer или float
[PRCCODE3] Неопределенный размер переменной, указанный в правой части деруля.
[CSTRCPSR1] ПРЕДУПРЕЖДЕНИЕ. Переопределение дефруле: определение-суббота-закрытие +j+j+j
[CSTRCPSR1] ПРЕДУПРЕЖДЕНИЕ. Переопределение дефруле: заключение «день-к-закрытию» +j+j