`- это синтаксическая кавычка , которая используется для записи кода в виде данных без его оценки.Обратите внимание, что он достаточно умен, чтобы преобразовать символы, представляющие функции, в правильное пространство имен.
Примеры:
`(+ 1 2)
=> (clojure.core/+ 1 2) ; a list containing the + function and two arguments
(eval `(+ 1 2))
=> 3 ; the result of evaluating the list
~ @ - оператор объединения без кавычек ,позволит вам расширить список элементов в некоторых указанных данных / коде.
Примеры:
(def args [3 4 5 6])
`(+ 1 2 ~@args 7 8)
=> (clojure.core/+ 1 2 3 4 5 6 7 8)
`(+ ~@(range 10))
=> (clojure.core/+ 0 1 2 3 4 5 6 7 8 9)
Более подробную информацию об этих и связанных с ними операциях можно найти как часть документация для считывателя Clojure .