I have a question about how or/2 works in pilog.  Here's my test of or/2:

~/lisp/miniPicoLisp
$ ./pil 
: (be a (3))
-> a
: (be b (3))
-> b
: (? (a 3))
-> T
: (be foo (@N) (or (a @N) (b @N)))
-> foo
: (? foo a b or (foo 3))
1 (foo 3)
1 (or (a 3) (b 3))
-> NIL
: 

Shouldn't that be T ?   

It seems to not to try to prove either (a 3) or (b 3).  Am I using or/2 
incorrectly in pilog? 


Here's that in swi-prolog for comparison:

~/prolog
# cat t.pl

a(3).

b(3).

foo(N) :- a(N) ; b(N).



 ~/prolog
# swipl -f t.pl 
% /root/prolog/t.pl compiled 0.00 sec, 2,804 bytes
Welcome to SWI-Prolog (Multi-threaded, 32 bits, Version 5.10.4)
Copyright (c) 1990-2011 University of Amsterdam, VU Amsterdam
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.

For help, use ?- help(Topic). or ?- apropos(Word).

?- a(3).
true.

?- foo(3).
true .

?- 



-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to