Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83 SMI; site emacs.uucp
Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!decvax!cca!emacs!ray
From: ray@emacs.uucp (Ray Reeves)
Newsgroups: net.lang.prolog
Subject: Re: Bugs, and more bugs...
Message-ID: <116@emacs.uucp>
Date: Fri, 28-Jun-85 11:05:06 EDT
Article-I.D.: emacs.116
Posted: Fri Jun 28 11:05:06 1985
Date-Received: Sun, 30-Jun-85 00:22:02 EDT
References: <2909@decwrl.UUCP>
Reply-To: ray@emacs.UUCP (Ray Reeves)
Organization: CCA Uniworks, Wellesley, MA
Lines: 39
Summary: 

I would like to follow up Van Treeck's comments avoiding, if I can, the patois 
of perversion.

His point about having a theory of modularisation is a good one, but he may not
be aware that micro-Prolog has been a modular system since it was first 
introduced in 1980.  

On the other hand, his endorsement of systems that modify text behind your back
seems capricious.  What possible merit is there in constraining the expressive
power of the ASCII set of characters?

His plea for a more pedantic style of syntax is misplaced.  Any Prolog can
be made to support a special interface, what the Lisp style does is represent 
a clause with minimum syntax, and the fact that it can be entered that way is
much appreciated by those who don't care for typing.  Building spurious
noise marks into the syntax has the unfortunate consequence of preempting 
those marks from use elsewhere.

The important point about Lisp syntax is that it is more suitable for 
reflective programming.  Not only does it vitiate the need for "univ" but it 
enables a term to be represented totally abstractly, whereas reference to a 
structure needs some knowledge of it's form.  For example, "((X|Y)|Z)" in 
micro-Prolog matches any clause.  Meta-programming in Dec-10 style is a much 
more clumsy business.

The idea of a "lambda" style syntax is also good, but I suggest that lambda
is a better word than "for_all", which suggests universal quantification.
Variables that do not first appear in the head are not universally quantified.

It seems to me that soft cuts under a disjunction are very important.  There
is a distinct need for them there, and the semantics of soft cut in that 
context does not seem strange if the disjunction is thought of as a separate
anonymous clause set which has been made local to share variable scope and
generally increase efficiency.  That, after all, is what it is.  The practise 
of treating cuts under a disjunction as soft seems quite satisfactory.
-- 
Ray Reeves,
CCA-UNIWORKS,20 William St,Wellesley, Ma. 02181. (617)235-2600
emacs!ray@CCA-UNIX