Gensym (Generate Symbols) is an old library for
generating unique symbols (atoms). Such symbols are generated from a
base atom which gets a sequence number appended. Of course there is no
guarantee that‘catch22' is not an already defined atom and
therefore one must be aware these atoms are only unique in an isolated
context.
The SWI-Prolog gensym library is thread-safe. The sequence numbers
are global over all threads and therefore generated atoms are unique
over all threads.
- gensym(+Base,
-Unique)
-
Generate a unique atom from base Base and unify it with Unique.
Base should be an atom. The first call will return <base>1
, the next <base>2 , etc. Note that this is no
guarantee that the atom is unique in the system.
- reset_gensym(+Base)
-
Restart generation of identifiers from Base at <Base>1.
Used to make sure a program produces the same results on subsequent
runs. Use with care.
- reset_gensym
-
Reset gensym for all registered keys. This predicate is available for
compatibility only. New code is strongly advised to avoid the use of
reset_gensym or at least to reset only the keys used by your program to
avoid unexpected side effects on other components.