Re: problems with not and unasserted facts

Lindsey Spratt <[email protected]>
Newsgroups gmane.comp.gnu.prolog.general
Message-ID <[email protected]>
Hello Vic.

On Aug 31, 2005, at 7:12 AM, Vic Bancroft wrote:

> Lindsey Spratt wrote:
>
>> not/1 is not a built-in in gprolog. Instead, use \+ / 1.
>
> This seems to be the most common issue introduced by the ISO  
> definitions !

The not/1 change seems to be a problem for people working from (poor)  
textbooks. I guess a lot of textbooks must use not/1, although I think  
the standards committee probably did the right thing by settling on  
\+/1 instead. Perhaps gprolog (and others) could have some advisory  
when not/1 is used: "use \+/1 instead, it's logically pure, or turn off  
this advisory by setting the i_like_not flag to true."

[I think the biggest failure of the ISO definitions was not including  
term_expansion and DCG. I consider these core features of a usable  
Prolog system.]

>> You could define a not/1 predicate as:
>>
>> not(Goal) :-
>>     \+ call(Goal).
>>
> Hey Lindsey, don't you have a compatibility library of predicates  
> around somewhere ?

mp32compatibility.pl is part of the XGP source:
http://cvs.sourceforge.net/viewcvs.py/xgp/xgp/src/bridge/ 
mp32compatibility.pl
http://cvs.sourceforge.net/viewcvs.py/xgp/xgp/src/bridge/ 
mp32compatibility_ops.pl

It does not include a not/1 predicate though, since MP32 didn't use  
that.

Cheers,
Lindsey
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.