я написал этот код в jess, но я продолжаю получать эту ошибку, и я не понимаю, почему?
(deffacts prices (price apple 125) (price chips 45) (price cola 110) (price egg 700))
(defrule createBill (buy ?n $?) => (assert (bill ?n 0)))
(deffunction getTotalPrice (?list)
(bind ?result 0) (foreach ?product $?products
(price ?product ?price)
(bind ?result (+ ?result ?price)))
(return ?result))
(defrule calculate ?i<-(bill ?n $?) (buy ?n $?products) => (retract ?i) (bind ?result (getTotalPrice $?products))(assert (bill ?n ?result)))
(reset)
(assert (buy yaser cola egg))
(run)
и я получаю эту ошибку???
Jess reported an error in routine Funcall.execute
while executing (price ?product ?price)
while executing (foreach ?product $?products (price ?product ?price) (bind ?result (+ ?result ?price)))
while executing defrule MAIN::calculate
while executing (run).
Message: Undefined function price.
Program text: ( run ) at line 41.
Проблема в том, что Джесс ищет функцию с именем цена, но я хочу использовать тот факт, что (price ... ...)
любая помощь хороша :) Ясер.