Hi Cle,

> although not intended so, it seems I mutate the picoLisp mailing list  
> into a Pilog mailing list ;-)

Which is a good thing. This way we produce at last some Pilog
documentation ;-)


>    (be attributes ((@H) @L @V) T (member (@H @V) @L) )
>    (be attributes ((@H . @) @L @V) (member (@H @V) @L) )
>    (be attributes ((@ . @T) @L @V) T (attributes @T @L @V) )
> ...
>    (? (attributes (b c) ((a 1) (b 2) (c 3)) @V))
> ...
> good! But if I comment out the first rule, the Pilog interpreter gets  
> into an endless loop, I have to terminate explicitely.

Hmm, I cannot reproduce that. It works both with and without the first
rule.


BTW, let me explain a debugging aid in Pilog: You can trace the matching
process for individual rules (similar to (trace 'fun) in Lisp) if you
write the names of the rules you like to trace between the '?' and the
first expression:

   : (? attributes (attributes (b c) ((a 1) (b 2) (c 3)) @V))
   1 (attributes (b c) ((a 1) (b 2) (c 3)) @V)
    @V=2                                                         
   2 (attributes (b c) ((a 1) (b 2) (c 3)) @V)
   1 (attributes (c) ((a 1) (b 2) (c 3)) @V)
    @V=3
   2 (attributes (c) ((a 1) (b 2) (c 3)) @V)
   -> NIL
   : 

The numbers preceding the trace output indicate which one of the
'attributes' rule matched.

Cheers,
- Alex
-- 
UNSUBSCRIBE: mailto:picol...@software-lab.de?subject=unsubscribe

Reply via email to