%% assert_unique( +Fact ). % % Retractall Fact's template before asserting term. % Fact can be a module prepended term. % %== % ?- assert_unique( abc:letter(a) ). % ?- abc:letter(A). % A = a. % ?- assert_unique( abc:letter(b) ). % ?- abc:letter(B). % B = b. %== % % @author nicos angelopoulos % @version 0.1 2014/9/2 % @tbd better name? % assert_unique( Mod:Term ) :- !, functor( Term, Name, Arity ), functor( Fresh, Name, Arity ), retractall( Mod:Fresh ), assert( Mod:Term ). assert_unique( Term ) :- functor( Term, Name, Arity ), functor( Fresh, Name, Arity ), retractall( Fresh ), assert( Term ).