Re: Ann: SWI-Prolog 7.1.0

"Richard A. O'Keefe" <[email protected]>
Newsgroups gmane.comp.ai.prolog.swi
Message-ID <[email protected]>
On 26/11/2013, at 10:53 PM, Jan Wielemaker wrote:

>> Something like this used to exist in Poplog and SigmaPROLOG,
>> where it was an artefact of representing compound terms as
>> (basically) [<atom>|<array>].  As I recall, it was an unmitigated
>> nuisance.
> 
> We'll see. It breaks nothing as long as you don't use them.

This is the kind of thing people used to say about PL/I.
It wasn't true then either, except in a rather Humpty-Dumpty-ish
sense of "YOU don't use them."

As soon as my code incorporates anyone else's code, all kinds of
hell can break loose.  My code can no longer rely on data generated
by *their* code making sense.

Making a distinction between f and f() made it very difficult to
port code between "Edinburgh" Prologs and SigmaPROLOG or Poplog.
Porting the DEC-10 Prolog library to Poplog was a much bigger
pain than it should have been.

Look, Jan, the next thing I say here may sound offensive.
I don't mean it to be.

The changes you are making to SWI Prolog make it more like
Javascript and less like a logic programming language.

Now from some of the things you said in the announcement, it sounds
to me as though you _intend_ SWI Prolog to me more like Javascript,
and I think you are much more concerned about making SWI Prolog
into a valuable tool for Web developers who aren't terribly
interested in logic programming as such than in "traditional"
users of Prolog.  With the exception of good support for strings
and psi-terms (proper LIFE-like psi-terms), I don't think any of
the changes discussed in this thread actually do that.  And good
support for strings and (proper LIFE-like) psi-terms is also good
for "traditional" users of Prolog, especially NLP.

I may seem to contradict myself here, because I don't like
functor/3 and (=..)/2 being broken.  Psi-terms are a big enough
benefit to justify that, and we have the LIFE documentation to
tell us how to deal with it.  But I don't see any indication of
LIFE being taken as a guide, and again this is compatible with
the changes being driven by the tastes of Web developers rather
than say NLP programmers.

I note that LIFE psi-terms do admit a compound term which I'll
write as f(...) which doesn't have any arguments _yet_ but also
doesn't definitely have _no_ arguments; psi-terms are
open to extension.  So that doesn't necessitate an f() -vs- f
distinction.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.