Subject: Re: Dynamic Declaration of Atoms

From: Jan Wielemaker <[email-masked]>
Date: Wed, 30 Aug 2000 10:11:48 +0200

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