Carp/core/Gensym.carp

16 lines
500 B
Plaintext
Raw Permalink Normal View History

(doc *gensym-counter* "Is a helper counter for `gensym`.")
(defdynamic *gensym-counter* 1000)
(defndynamic gensym-local [x]
(Symbol.concat ['gensym-generated x]))
(doc gensym-with "Generates symbols dynamically, based on a symbol name.")
(defndynamic gensym-with [x]
(do
(set! *gensym-counter* (+ *gensym-counter* 1))
(Symbol.concat [x (Symbol.from *gensym-counter*)])))
(doc gensym "Generates symbols dynamically as needed.")
(defndynamic gensym []
(gensym-with 'gensym-generated))