Учитывая макрос ниже -
(defmacro defhello [fn-name body] `(defn ~fn-name [~'name] ~body))
и функция, определенная при вызове как -
(defhello приветствие (имя "Hello" ))
и называется
(приветствие "Джо" )
вернет
Hello Joe
Я не понимаю использование ~ 'перед параметром имени? Что оно делает? Не процитировать (') и unquote (~) отменить друг друга? Что происходит, когда они используются вместе? Почему бы просто написать имя без них?