From 9958ad6f3478fb0d13c53181d6badc3ae606bee4 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Mon, 13 Jan 2020 21:01:09 -0700 Subject: [PATCH] add prefixes to gensym keys --- src/prolog/lib/gensym.pl | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/prolog/lib/gensym.pl b/src/prolog/lib/gensym.pl index 7b0f6cb5..98d8bcde 100644 --- a/src/prolog/lib/gensym.pl +++ b/src/prolog/lib/gensym.pl @@ -1,4 +1,3 @@ - :- module(gensym, [gensym/2, reset_gensym/1]). @@ -7,6 +6,12 @@ :- use_module(library(non_iso)). :- use_module(library(si)). +gensym_key(Base, BaseKey) :- + atom_chars('gensym_', PrefixChars), + atom_chars(Base, BaseChars), + append(PrefixChars, BaseChars, BaseKeyChars), + atom_chars(BaseKey, BaseKeyChars). + append_id(Base, UniqueID, Unique) :- atom_chars(Base, BaseChars), number_chars(UniqueID, IDChars), @@ -15,12 +20,13 @@ append_id(Base, UniqueID, Unique) :- gensym(Base, Unique) :- must_be(var, Unique), - atom_si(Base), - ( bb_get(Base, UniqueID0) -> + atom_si(Base), + gensym_key(Base, BaseKey), + ( bb_get(BaseKey, UniqueID0) -> UniqueID is UniqueID0 + 1, - bb_put(Base, UniqueID), + bb_put(BaseKey, UniqueID), append_id(Base, UniqueID, Unique) - ; bb_put(Base, 1), + ; bb_put(BaseKey, 1), append_id(Base, 1, Unique) ). -- 2.54.0