Квадратные скобки вокруг аргументов в Clojure defn
, defmacro
и binding
(я забываю некоторых?) действительно создание вектора или это - просто вопрос синтаксиса, приводя, что аргументы стоят из остальных?
Я читаю Clojure в Действии, которое указывает:
Clojure использует векторы для обозначения аргументов функции или обязательных форм.
который заставил меня задать этот вопрос здесь.
Да, это действительно вектор. Мы можем убедиться в этом, создав функцию вручную и затем оценив ее:
(eval (list (list 'fn (vector 'x) (list '* 'x 2)) 100))
;=> 200
Надеюсь, что это поможет.