Path: utzoo!attcan!uunet!munnari!otc!metro!basser!usage!ccadfa!cancol!jan From: jan@cancol.oz (Jan Newmarch) Newsgroups: comp.lang.prolog Subject: Re: Quintus compatibles Summary: Arity compatability Message-ID: <123@cancol.oz> Date: 13 Feb 89 04:36:00 GMT References: <291@Intrepid.ece.ukans.edu> <8700001@iuvax> Organization: Info. Sciences, Canberra Coll. of Adv. Ed. Lines: 32 We have used Arity/Prolog for some years. The worst incompatability is the if..then..else construct: ifthenelse(P,Q,R) and ifthen(P,Q) instead of (P->Q;R) and (P->Q). Unfortunately Arity have swiped the operator -> for use in a case statement construct with the wrong precedence for P->Q. The interpreter is ok - add this to the start of your DEC-10 program: :- op(0,xfy, -> ). % kill the operator :- op(1100,xfy, -> ). % bring it back with better precedence (P->Q;R) :- ifthenelse(P,Q,R). (P->Q) :- ifthenelse(P,Q,fail). % ifthen(P,Q) succeeds if P fails This does not work for the Arity/Prolog compiler, and you are best off writing a translator from (P->Q) notation to that of Arity. Most other things are fine, but you have to watch for little DEC-10 oddities like put("a") which Arity doesn't like. +----------------------+---+ | Jan Newmarch |:-)| ACSnet: jan@cancol.oz | Info. Sciences & Eng.|___| ARPA: jan%cancol.oz.au@uunet.uu.net | Canberra CAE | UUCP: {uunet,ukc}!munnari!cancol.oz.au!jan | P.O. Box 1 | CSNET: jan%cancol.oz@australia | Belconnen A.C.T. 2616 | JANET: jan%au.oz.cancol@EAN-RELAY | AUSTRALIA | +--------------------------+