Newsgroups: comp.lang.prolog
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!pipex!uunet!EU.net!sun4nl!swi.psy.uva.nl!jan
From: jan@swi.psy.uva.nl (Jan Wielemaker)
Subject: Re: Conversion problem
Message-ID: <CzAy0L.33u@swi.psy.uva.nl>
Organization: Social Science Informatics
References: <3a88h2$f64@ucunix.san.uc.edu>
Date: Tue, 15 Nov 1994 09:21:56 GMT
Lines: 31

kutnarsj@ucunix.san.uc.edu (Steve K) writes:


>The errors I receive:

>          ***Syntax error***
>           not --> 
>          **here**
>          [not].
> 
>          ***Syntax error***
>          strip_class(Name1/not
>          **here**
>          , Name1) :- !.


There are two solutions.  One is to write your not's as (not).  Unlike
what most people think, 'not' is *exactly* the same as just not.  An
atom may still be an operator, quoted or not (at least following the
Edinburgh rules).  Enclosing an atom in brackets is the way to stop it
acting as an operator.

In some cases, you would like to make the Prolog a bit more compatible
with the one you wrote your package on.  In that case you can
choose for :- op(0, fy, not).  Note that this may give errors when loading
code written for C-Prolog into the same Prolog image.

	Regards --- Jan

P.s.	I have answered this quesion so many times that I think it deserves
	a place in a FAQ!
