Path: utzoo!mnetor!uunet!husc6!sri-unix!quintus!ok From: ok@quintus.UUCP (Richard A. O'Keefe) Newsgroups: comp.lang.prolog Subject: Re: behavior of read/get0 at end_of_file Message-ID: <787@cresswell.quintus.UUCP> Date: 19 Mar 88 03:04:08 GMT References: 608 <1197@kulcs.kulcs.uucp> <783@cresswell.quintus.UUCP> Organization: Quintus Computer Systems, Mountain View, CA Lines: 24 Keywords: get0 read end_of_file BSI In article <783@cresswell.quintus.UUCP>, I replied to article <1197@kulcs.kulcs.uucp>, by bimandre@kulcs.uucp (Andre Marien) [signed by Andre Marien and Bart Demoen both]. The topic was what read/1 and get0/1 should do at the end of a stream. I thought you might be interested to know what the BSI committee say. In document PS/236, "Draft minutes, Prolog Built-In Predicates meeting, 10 December 1987", we find 4 Design criterion suggested: "Whenever possible, a predicate with a side effect should always succeed and never instantiate variables." This of course rules get0/1 and read/1 out entirely. That may not be what _meant_, but it _is_ what the minutes say he _said_. As far as I can tell, the real intent is to rule out retract/1, which is disliked because it unifies its argument with the thing you removed. The minutes show that Paul Chung proposed naming the standard clause- removing predicate delete/1 instead of retract/1. Good on yer, mate! This should not be construed as endorsement of the name delete/1, but as praise for Paul Chung's good standardisation manners.