On Wed, Nov 25, 2009 at 11:25:35AM +0800, cle wrote:
> Here the predicate aT/1 may be rewritten using the ';' operator as in
> bT/1. Now I have found, that Pilog offer a 'or' rule. But it seems, this
> does not resemble ';' of Prolog. Suppose the Pilog translation of the
> code above:
> (be bT (@N)
> (or (t1 @N) (t2 @N)))
> So I would like to ask, if 'or' works as intended or if there is a bug?
'or' takes not singular expressions, but whole clause bodies in each
argument, to allow the implicit 'and' of Prolog. Thus, an additional
level of parentheses is required.
A working version would be:
(be bT (@N)
(or ((t1 @N)) ((t2 @N))) )