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