Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site decwrl.DEC.COM Path: utzoo!linus!decvax!decwrl!dec-rhea!dec-tkov58!toba From: toba@tkov58.DEC (Toshiya Toba, DEC-Japan SWS/TK2/AI-group) Newsgroups: net.lang.prolog Subject: recorda,recorded,erase--behavior Message-ID: <1106@decwrl.DEC.COM> Date: Thu, 13-Feb-86 02:29:52 EST Article-I.D.: decwrl.1106 Posted: Thu Feb 13 02:29:52 1986 Date-Received: Fri, 14-Feb-86 06:37:47 EST Sender: daemon@decwrl.DEC.COM Organization: Digital Equipment Corporation Lines: 40 Does anyone here faced the folling problem? If key of the recorda(K,T,R) is same name as build in predicate, one can not erase(R) this Term, though it should have different R number that prolog build in predicate and thous one should erase such a Term. I have tried DEC-10 prolog, C-prolog, and Quintus prolog.. both DEC-10 and Quintus can erase that term correctly but C-prolog does not. (original programs were cross referencer, written in DEC-10 prolog) Tnx in advance for any comments. --------program follows------- test:-recorda(arg(A,B,C), '$caller'(arg(A,B,C),empty,2,'test.dat')), recorded(arg(A,B,C),'$caller'(arg(A,B,C),X,Y,Z),R), erase(R). -------trace log follows----- |?-test. (1) 1 Call: test ? ......... ........ (4) 2 Call: recorded(arg(_0,_1,_2),$caller(arg(_0,_1,_2),_3,_4,_5),_3435 ? (4) 2 Exit: recorded(arg(_0,_1,_2),$caller(arg(_0,_1,_2),empty,2,test.dat), a00246e) ? (5) 2 Call: erase(a000264e) ? ! Attempt to erase a system object -------end log--------- Toshiya Toba UUCP: ....!decwrl!dec-rhea!dec-tkov58!toba ARPA: TOBA@MARLBORO.DEC.COM