, Comma reads as white space. Often used between map key/value pairs for readability.

' quote: ' form → ( quote form )

/ Namespace separator (see Primitives/Other section)

\ Character literal (see Primitives/Other section)

: Keyword (see Primitives/Other section)

; Single line comment

^ Metadata (see Metadata section)

*foo* 'earmuffs' - convention to indicate dynamic vars, compiler warns if not dynamic

@ Deref: @ form → ( deref form )

foo# 'auto-gensym', consistently replaced with same auto-generated symbol everywhere inside same `( ... )

( List literal (see Collections/Lists section)

[ Vector literal (see Collections/Vectors section)

{ Map literal (see Collections/Maps section)

#' Var-quote: #' x → ( var x )

#" #" p " reads as regex pattern p (see Strings/Regex section)

#{ Set literal (see Collections/Sets section)

% Anonymous function argument: %N is value of anonymous function arg N . % short for %1 . %& for rest args.

#? Reader conditional: #?(:clj x :cljs y) reads as x on JVM, y in ClojureScript, nothing elsewhere. Other keys: :cljr :default

#?@ Splicing reader conditional: [1 #?@(:clj [x y] :cljs [w z]) 3] reads as [1 x y 3] on JVM, [1 w z 3] in ClojureScript, [1 3] elsewhere.

#: map namespace syntax e.g. #:foo{:a 1} is equal to {:foo/a 1}

## (1.9) symbolic values: ##Inf ##-Inf ##NaN

$ JavaContainerClass$InnerClass

foo? conventional ending for a predicate, e.g.: zero? vector? instance? (unenforced)

foo! conventional ending for an unsafe operation, e.g.: set! swap! alter-meta! (unenforced)

_ conventional name for an unused value (unenforced)