Являются ли квадратные скобки в defj, defmacro и binding Clojure действительно вектором? - PullRequest
13 голосов
/ 29 марта 2010

Являются ли квадратные скобки вокруг аргументов в defn, defmacro и binding Clojure (я забыл некоторые?) Действительно созданием вектора или это просто вопрос синтаксиса, выделяющий аргументы из остальных?

Я читаю Clojure в действии, в котором говорится:

Clojure использует векторы для обозначения аргументы функции или формы привязки.

, который заставил меня задать этот вопрос здесь.

1 Ответ

20 голосов
/ 29 марта 2010

Да, это действительно вектор. Мы можем увидеть это, построив функцию вручную и затем оценив ее:

(eval (list (list 'fn (vector 'x) (list '* 'x 2)) 100))
;=> 200

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...