Dear Levent,

You are using a function (foreach) at the LHS of a rule. See http://www.jessrules.com/FAQ.shtml#Q17 for an explanation on why this is not good practice. Try putting the foreach loop on the RHS of the rule, and most likely things will work as expected.

(defrule BuildPlanForward
   (depends-on (parent ?a) (children ?list))
   =>
   (foreach ?c ?list (assert (available-part (name ?a))))

- Nick.

levent kent wrote:

Hi  everybody,

I am doing my masters thesis and have a problem with lists.
It is actually very simple.

I want to create a rule which says:
If all subtasks of a parent task are completed, then the parent task can be completed too.

I tried the code below, but it seems that I can not use "foreach" at LHS of a rule.

(defrule BuildPlanForward
    (depends-on (parent ?a) (children ?list))
    (foreach ?c ?list  (available-part (name ?c)))
    =>
    (assert (available-part (name ?a)))
    )

How could I write such a rule in Jess?

Thanks,

--
Levent Kent




--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [email protected]'
in the BODY of a message to [email protected], NOT to the list
(use your own address!) List problems? Notify [email protected].
--------------------------------------------------------------------

Reply via email to