Path: utzoo!attcan!uunet!zaphod.mps.ohio-state.edu!rpi!batcomputer!munnari.oz.au!goanna!ok From: ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) Newsgroups: comp.lang.prolog Subject: Re: Standards question: behavior of arg/3 Keywords: ANSI, standard Message-ID: <4036@goanna.cs.rmit.oz.au> Date: 22 Oct 90 03:19:08 GMT References: <9888@bunny.GTE.COM> <3992@goanna.cs.rmit.oz.au> <1920@tuvie> <5816@munnari.oz.au> Organization: Comp Sci, RMIT, Melbourne, Australia Lines: 29 In article <5816@munnari.oz.au>, lee@munnari.oz.au (Lee Naish) writes: > I have had the > "pleasure" of porting a 30,000 line program written in (an old version > of) Quintus Prolog to NU-Prolog. One of the nastiest bugs was a call to > functor/3 which failed in Quintus because it was insuffiiently > instantiated, but delayed in NU-Prolog. I'm not sure what the latest > version of Quintus does. It reports the instantiation fault. Silent failure when the real problem is not that there are _no_ solutions but that there are infinitely many is clearly (a) wrong and (b) unhelpful. > I hope more systems start producing error > messages in situations like this. QP3.0 is really thorough about this, and to be fair, IF/Prolog always did produce error messages. (To be even fairer, IF/Prolog also produced error messages in several cases where the query made sense and had a definite answer...) > I haven't seen any recent draft standards - do they discuss the > general class of errors called instantiation faults? Yes, EPs in the ISO draft do report instantiation faults. It's not described as a general rule; you have to check each separate predicate description. -- Fear most of all to be in error. -- Kierkegaard, quoting Socrates.