From 9dbbd43e54f515e9665a49724aa692f788bb6b45 Mon Sep 17 00:00:00 2001 From: vsc Date: Sat, 29 Oct 2005 00:13:10 +0000 Subject: [PATCH] gensym builtin for SWI emulation. git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1423 b08c6af1-5177-4d33-ba66-4b1c6b8b522a --- library/gensym.yap | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 library/gensym.yap diff --git a/library/gensym.yap b/library/gensym.yap new file mode 100644 index 000000000..88708f725 --- /dev/null +++ b/library/gensym.yap @@ -0,0 +1,24 @@ +:- module(gensym, [ + gensym/2, + reset_gensym/1, + reset_gensym/0 + ]). + +:- dynamic gensym_key/2. + +gensym(Atom, New) :- + retract(gensym_key(Atom,Id)), !, + atomic_concat(Atom,Id,New), + NId is Id+1, + assert(gensym_key(Atom,NId)). +gensym(Atom, New) :- + atomic_concat(Atom,1,New), + assert(gensym_key(Atom,2)). + +reset_gensym(Atom) :- + retract(gensym_key(Atom,_)). + +reset_gensym :- + retractall(gensym_key(_,_)). + +