Hi Cle,
> > Anonymous variables ('@' in Pilog, '_' in Prolog) may not work as
> > expected, when there is more than one of them in a complex rule,
> > with each in a different context.
> > ...
> But anyway, the most important thing is, to *know* about that
> restriction! Then -- perhaps -- one can solve or work-around it ... so,
Yes, the work-around is easy: Just use variables '@1', '@2' instead of
'@'. It is just rather inelegant, and may produce unwanted output :-(
The next problem seems rather hairy:
> (? (@CL list 'foo '(@N)) (equal (@P . (@A)) @CL) (call @P . @A) (@
> retract (-> @CL))
> ...
> (be retract (@CL)
> (equal (@P . (@A)) @CL)
> (call @P . @A)
> (@ retract (-> @CL)) )
It works if you use
... (equal (@P (@A)) @CL) (call @P @A) ...
and
...
(equal (@P (@A)) @CL)
(call @P @A)
...
But don't ask me why! 'call' seems rather tricky, and I don't remember
how and why I implemented it in that way (about 15 years ago) :-(
Cheers,
- Alex
--
UNSUBSCRIBE: mailto:[email protected]?subject=unsubscribe