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