Works like a charm thank you.

On Tue, Apr 14, 2009 at 1:12 PM, Ernest Friedman-Hill <[email protected]>wrote:

> To match the contents of the list, you use a "multifield" -- a variable
> starting with a "$" character:
>
> (defrule display
>   (B::acceptedPapers $?papers)
>   =>
>   (printout t $?papers crlf))
>
> To modify a fact, you must always use the "modify" function. This function
> operates only on unordered facts, which means that the ordered fact you're
> using here won't work. You need to define a template:
>
> (deftemplate B::acceptedPapers (multislot papers))
>
> Then you write the rule to match the existing slot contents and modify the
> slot:
>
> (defrule accept
>   ?cmd <- (accept ?newPaper)
>   ?acceptedPapers <- (B::acceptedPapers (papers $?oldPapers))
>   =>
>   (modify ?acceptedPapers (papers ?newPaper ?oldPapers)
>   (retract ?cmd)
> )
>
> I added a line to retract the "accept" fact so you don't get an infinite
> loop.
>
>
>
> On Apr 14, 2009, at 6:06 AM, Aycan Adal wrote:
>
>  Hello everyone,
>>
>> What I am trying to do is doing list operations like inserting, removing
>> getting the first element and so... on the lists that are on the working
>> memory. Here is how I try:
>>
>> (deffacts B::facts
>>    (B::acceptedPapers (create$))
>> )
>>
>>
>> and then:
>>
>> (defrule accept
>>   (accept ?paper)
>>   ?acceptedPapers <- (B::acceptedPapers)
>>   =>
>>    (insert$  ?acceptedPapers 1 ?paper)
>> )
>>
>> and when accept is fired, I get the error:
>>
>>
>> Jess reported an error in routine Value.listValue
>>   while executing (insert$ ?acceptedPapers 1 ?paper)
>>   while executing defrule accept.
>>  Message: '<Fact-12>' is a fact, not  a list.
>>
>> How can I keep a list of accepted papers in this case and add and remove
>> from it? I couldn't get it to work no matter how I tried. So any help is
>> appreciated.
>>
>> Regards,
>> Aycan Adal
>>
>
> ---------------------------------------------------------
> Ernest Friedman-Hill
> Informatics & Decision Sciences, Sandia National Laboratories
> PO Box 969, MS 9012, Livermore, CA 94550
> http://www.jessrules.com
>
>
>
>
>
>
>
> --------------------------------------------------------------------
> 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