From jan@swi.psy.uva.nl  Wed Aug 30 10:19:04 2000
Received: from gollem.swi.psy.uva.nl (root@gollem [145.18.152.30])
	by swi.psy.uva.nl (8.9.3/8.9.3) with ESMTP id KAA04730;
	Wed, 30 Aug 2000 10:19:03 +0200 (MET DST)
Received: from localhost (localhost [[UNIX: localhost]])
	by gollem.swi.psy.uva.nl (8.9.3/8.9.3/SuSE Linux 8.9.3-0.1) id KAA20434;
	Wed, 30 Aug 2000 10:19:06 +0200
From: Jan Wielemaker <jan@swi.psy.uva.nl>
Organization: SWI, University of Amsterdam
To: "Richard A. O'Keefe" <ok@atlas.otago.ac.nz>, Randy.Justice@cnet.navy.mil,
        prolog@swi.psy.uva.nl
Subject: Re: Dynamic Declaration of Atoms
Date: Wed, 30 Aug 2000 10:11:48 +0200
X-Mailer: KMail [version 1.0.28]
Content-Type: text/plain
References: <200008300130.NAA11474@atlas.otago.ac.nz>
In-Reply-To: <200008300130.NAA11474@atlas.otago.ac.nz>
MIME-Version: 1.0
Message-Id: <00083010190600.20282@gollem>
Content-Transfer-Encoding: 8bit

On Wed, 30 Aug 2000, Richard A. O'Keefe wrote:

>    select(Item, ListWithItem, ListSansItem) :-
>	/* Specification, NOT implementation */
>	append(A, [Item|Z], ListWithItem),
>	append(A,       Z , ListSansItem).
>
>It is ******EXTREMELY****** annoying that SWI Prolog has for who
>knows what reason incompatibly permuted the arguments of this predicate.
>If it is important enough to build in, it is important enough to build
>in *right*.

Hmm.  I guess select/3 is there from the days SWI-Prolog was no more
then a little internal toy.  I surely copied the spec from somewhere,
but appearently from this one source doing it wrong and nobody
complained afterwards.

Unfortunately, changing it now is hard.  One option might be to change
it, move it into the library (so overruling is easier) and stick a
warning into the compiler for the next quite-a-few releases.

On the long run, I my feeling is that compatibility with the rest
of the Prolog community should win over backward compatibility.

	Regards --- Jan

