Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!philabs!mcnc!unc!ulysses!allegra!princeton!caip!seismo!mcvax!ukc!icdoc!cdsm From: cdsm@doc.ic.ac.uk (Chris Moss) Newsgroups: net.lang.prolog Subject: Re: Standard behavior? Message-ID: <333@ivax.doc.ic.ac.uk> Date: Thu, 22-May-86 08:42:30 EDT Article-I.D.: ivax.333 Posted: Thu May 22 08:42:30 1986 Date-Received: Sun, 25-May-86 15:46:03 EDT References: <980@watdragon.UUCP> Reply-To: cdsm@doc.ic.ac.uk (Chris Moss) Organization: Dept. of Computing, Imperial College, London, UK. Lines: 26 In article <980@watdragon.UUCP> rggoebel@watdragon.UUCP writes: >> >Consider the following trivial predicate: >> >a([]). >> >a(_). >> > >> >Given the query :-a([]). , C-Prolog finds one match and UNSW Prolog finds two. >> >Which is standard behavior? How do other implementations behave? >_____________ >> I do not have the authority to say which is "standard" behavior, if by that >> you mean which is found more commonly in implementations. Most of this discussion is not about how Prolog behaves, but how the top level query evaluator behaves. As a member of the Prolog standards committee but NOT speaking officially I should say that most environmental questions are being RULED OUT by the standards committee. Whether it will specify exactly what is the answer to a top level query is not yet sorted out. [To repeat what has been said already, the confusion is just about what response CProlog makes to a top-level query - if the query contains no variables it just answers "yes" and doesn't give the opportunity to look for another solution (all ways of solving it are equivalent so why bother). UNSW gives ALL solutions by default, even in this rather unnecessary case. If it was part of a larger problem, every Prolog I know would backtrack and find both, even though it was strictly equivalent] Chris Moss - cdsm@doc.ic.ac.uk or cdsm@icdoc.uucp