Newsgroups: comp.lang.prolog
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!news.mathworks.com!news.duke.edu!godot.cc.duq.edu!newsfeed.pitt.edu!gatech!swrinde!ihnp4.ucsd.edu!munnari.oz.au!cs.mu.OZ.AU!munta.cs.mu.OZ.AU!lee
From: lee@munta.cs.mu.OZ.AU (Lee Naish)
Subject: Re: Otherwise?
Message-ID: <9505910.24503@mulga.cs.mu.OZ.AU>
Sender: news@cs.mu.OZ.AU (CS-Usenet)
Organization: Department of Computer Sci, University of Melbourne
References: <3iim59$nks@lightning.ditc.npl.co.uk> <9505706.24724@mulga.cs.mu.OZ.AU>
Date: Mon, 27 Feb 1995 23:52:30 GMT
Lines: 37

In article <9505706.24724@mulga.cs.mu.OZ.AU> fjh@munta.cs.mu.OZ.AU (Fergus Henderson) writes:
>rss@seg.npl.co.uk (Roger Scowen) writes:
>
>>ISO/IEC 13211-1 (Prolog -- Part 1: General core) defines a goal
>>   (If -> Then) 
>>as failing when If fails. This decision was taken so as to (1) be compatible 
>>with existing Edinburgh Prolog systems, and (2) fit in with the notations 
>>   (Either ; Or)
>>and
>>   (If -> Then ; Else).

(1) is a very good reason.
The logic of (2) is not clear to me as either choice would "fit in" with
these notations.

>Just to clarify my position a little - I think the Prolog committee
>certainly made the right choice here.

I think everyone agrees with this.

>But life would have been
>easier if the Edinburgh people had made a different choice in the
>first place, such as (if ... then ... else ...) or (If ? Then : Else).

Agreed, though even if-then would have confused many people also I
believe.  The chosen syntax confuses people due to the connection with
"if-then-else" which is unavaoidable but also with logical implication.
People think that Prolog is based on logic and therefore -> is based on
logical implication.  We certainly thought that in Melbourne when
MU-Prolog was designed and (very unfortunately) were still had that
misunderstanding when NU-Prolog was implemented (otherwise we would have
changed).  Of course -> was *not* based on logical implication.  Prolog
was designed as an AI language and naturally borrowed various ideas from
other AI languages, notably the conditional construct of LISP (so I have
been told).  An unfortunate choice, I think, but not at all unreasonable.

	lee
