Закрытие (применить ул) вопросы? - PullRequest
5 голосов
/ 31 июля 2010

С закрытием

(apply str [\a \b])

и

(apply str '(\a \b))

возвращает "ab".

(apply str (\a \b))

возвращает ошибку.

Почему это?

1 Ответ

14 голосов
/ 31 июля 2010

Поскольку (\a \b) означает «вызов функции \a с аргументом \b», а поскольку символ \a не является функцией, произойдет сбой. Обратите внимание на разницу в следующем:

user=> (+ 1 2 3)
6
user=> '(+ 1 2 3)
(+ 1 2 3)

Как правило, если вы хотите написать буквенную последовательность, используйте вектор вместо списка в кавычках, поскольку кавычка также останавливает оценку частей внутри списка, например ::10000

user=> [(+ 1 2) (+ 3 4)]
[3 7]
user=> '((+ 1 2) (+ 3 4))
((+ 1 2) (+ 3 4))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...