Извините за ужасно расплывчатое название :)
Я новичок в макросах, и мне трудно понять разницу между этими двумя операторами:
`(+ 1 2 ~(+ 2 3)) ; => (clojure.core/+ 1 2 5)
'(+ 1 2 ~(+ 2 3)) ; => (+ 1 2 (clojure.core/unquote (+ 2 3)))
Когда я запускаю их без unquote, они кажутся скорее идентичными, кроме уточнения?
`(+ 1 2 (+ 2 3)) ; => (clojure.core/+ 1 2 (clojure.core/+ 2 3))
'(+ 1 2 (+ 2 3)) ; => (+ 1 2 (+ 2 3))
Так что в основном меня смущает `vs '. Насколько я понимаю, они оба цитируют все в списке, поэтому я не уверен, почему снятие кавычек ведет себя по-разному. В основном `ведет себя так, как я ожидал, что и` и 'будут вести себя.
Спасибо!