(sym ..args)
  args: zero or more arguments (any type)
  returns a sym
F

Constructs a symbol.

Each argument is converted into text and concatenated. If the resulting string has previously been passed to sym, that same symbol is returned. Otherwise, a new symbol is allocated and returned.

(ensure (eq? 'ice2 (sym "ice" 2)))
(ensure (eq? 'bolt3 (sym 'bolt (+ 1 1 1))))

A valid symbol is a sequence of one or more of the following characters, optionally followed by a single #:

abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
!$%&*+-./:<=>?^_~
flo->str
gensym