Size: a a a

Clojure — русскоговорящее сообщество

2020 February 01

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Azamat Kalimoulline
defn специальная форма не как отдельный символ, а да, список, который начинается с defn.
в доке оно называется прямо вот так (def symbol doc-string? init?) https://clojure.org/reference/special_forms#def
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Форма defn - это весь список - (defn aaa [b c d] (list d c b))
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Ладно, мне кажется это разговор про условности и терминологию, когда суть вроде как понятна всем)
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Ну это названия. А так это списки, котоые начинаются с этих символов.
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
У тебя форма вылезет из ридера или атом, или список.
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Вот список, у которого первый элемент символ defn - это форма defn.
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Если там первый символ что-то неизвестное, то это будет вызов функции.
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Макросы только не помню когда раскрываются. По идее, перед ридером.
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Они ж все неизвестные, идёшь и спрашиваешь у окружения, что тебе досталось
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Разве кложура запрещает переопределить if?
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Почему все неизвестные? defn известный, if известный.
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Mikhail Borisov
Разве кложура запрещает переопределить if?
Не знаю, можно попробовать. :)
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Они вроде special только в том смысле, что их нельзя написать через другие
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
def вроде не получится написать)
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Они special потому что "Special forms have evaluation rules that differ from standard Clojure evaluation rules and are understood directly by the Clojure compiler".
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Что-то не работает форматирование. :)
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
То есть они имеют особенные правила эвалюации.
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Azamat Kalimoulline
Они special потому что "Special forms have evaluation rules that differ from standard Clojure evaluation rules and are understood directly by the Clojure compiler".
Окей, интересное решение
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Вроде лиспы не мешали переопределить что-нибудь такое и сломать рантайм
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Ну это во всех лиспах так сделано.
источник