Segmentation Fault under Linux, while using the retract predicate
R990609.01
The following code demonstrates the problem:
domains stringdata=string database - internal stringdb(stringdata) predicates go clauses go:- %% assert first assertz(stringdb("alpha")), assertz(stringdb("beta")), assertz(stringdb("charlie")), assertz(stringdb("delta")), assertz(stringdb("1")), assertz(stringdb("1.1")), % The following code will cause trouble, % when we retract(stringdb(_)) assertz(stringdb("1,2")), assertz(stringdb("end")), %% then retract and print retract(stringdb(P1)), write(P1),nl, retract(stringdb(P2)), write(P2),nl, retract(stringdb(P3)), write(P3),nl, retract(stringdb(P4)), write(P4),nl, retract(stringdb(P5)), write(P5),nl, retract(stringdb(P6)), write(P6),nl, %% The following code % will cause core dump! retract(stringdb(_)), %% The following code WILL work instead! %retract(stringdb(P7)), %write(P7),nl, retract(stringdb(P8)), write(P8),nl, !. |