Newsgroups: comp.lang.prolog
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!pipex!uunet!newsflash.concordia.ca!CC.UMontreal.CA!IRO.UMontreal.CA!tarau
From: tarau@IRO.UMontreal.CA (Paul Tarau)
Subject: Re: LispWorks Prolog
Message-ID: <D1p098.1wE@IRO.UMontreal.CA>
Sender: news@IRO.UMontreal.CA
Organization: Universite de Montreal, Canada
References: <9435609.25988@mulga.cs.mu.OZ.AU> <JASON.94Dec22134512@wratting.harlqn.co.uk> <STEPHEN.94Dec28131322@eros.otago.ac.nz>
Date: Sat, 31 Dec 1994 20:43:56 GMT
Lines: 31

In article <STEPHEN.94Dec28131322@eros.otago.ac.nz> scranefield@commerce.otago.ac.nz writes:

>LispWorks Common Prolog is *not* Edinburgh compatible.  It has one
>major flaw: all variables are equivalent in the standard ordering on
>terms:
......
>but I find it hard to take a Prolog implementation seriously if it has
>something this fundamental wrong!
>

There's nothing fundamentally wrong with having all variables
equal. The main reason for this is that there's no _fundamental_
reason to have them different. This was an accidental feature in some
early Prolog implementations and people just get used to it :-)

Talking about the order of free variables is not `well defined'
because it will be settled only when they are bound to
something that can be ordered in a meaningful way.

For implementors, variable ordering can get from time to time
very ugly (for instance, when they are moved from the local stack to
the heap or in the case of the Lindgren-Bevemyr copyiing GC
algorithm).

Overall, my guess is that having all variables equal
in standard ordering is just as fine as having them different and
that in practice it would break a limited amount of 
well-written Prolog code.

Paul Tarau

