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.