Что происходит, когда я передаю аргументы символу Clojure? - PullRequest
12 голосов
/ 22 ноября 2011

Если я сделаю это:

('a 'b 'c)

Я получаю это:

c

Почему?

1 Ответ

18 голосов
/ 22 ноября 2011

Ссылка, опубликованная Хаулетом, является хорошим обзором символов, но ответ на ваш вопрос заключается в том, что вызов символа как функции эквивалентен поиску этого символа в первом аргументе.

('a 'b)

эквивалентно

(get 'b 'a)

Документация для get показывает, что вы можете передать необязательный третий аргумент по умолчанию. В вашем примере 'c рассматривается как значение по умолчанию и возвращается, поскольку' b не является картой и 'не может быть найден.

...