#function #clojure #definition
#функция #clojure #определение
Вопрос:
Почему некоторые (многие) встроенные функции Clojure определены с помощью def
, а не defn
?
Я знаю, что defn
это ярлык def
, но мне интересно, есть ли какая-то другая причина, такая как соображения эффективности / удобочитаемости / стиля / начальной загрузки.
Ответ №1:
Читайте дальше в clojure/core.clj — defn
еще не существует вверху, потому что этот файл создает язык по ходу работы. После нескольких сотен строк defn
записывается, а функции после этого определяются с defn
помощью .
Комментарии:
1. гениально. постепенное построение языка — одна из многих вещей, которые делают исходный код Clojure таким интересным для чтения!