Size: a a a

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

2021 June 26

SP

Stas P in Clojure — русскоговорящее сообщество
не пойму почему нет простого способа сделать вал
источник

SP

Stas P in Clojure — русскоговорящее сообщество
просто одну константу и всё в скоупе дефн
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Напомни, val - это член в класса или локальная переменная доступная только одному методу?
источник

SP

Stas P in Clojure — русскоговорящее сообщество
локальная константа доступная одному методу
источник

SP

Stas P in Clojure — русскоговорящее сообщество
в скале вал в джаве файнал вар
источник

SP

Stas P in Clojure — русскоговорящее сообщество
я конечно могу через лет как ты показал. но это очередной уровень вложенностей
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Бля, вот жеж костыль!
источник

SP

Stas P in Clojure — русскоговорящее сообщество
иногда просто помогает писать более читаемый код. конечно можно всё в одну строку записать. но...
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Именно так и надо. (Это не я показал, BTW).
Очередной уровень вложенности - это не то, что должно отпугивать. В scala и Java у тебя также для каждой val или var тоже есть «область видимости» (scope). Но там его можно не обозначать явно (фигурными скобками), а в кложе обязательно явно его объявляют через конструкцию (let [...] ...)
источник

SP

Stas P in Clojure — русскоговорящее сообщество
тут получается что летом ты еще и скоуп видимости внутри дефна дополнительно означаешь. типа твой вэлью виден только в скобках и пофиг что не во всем дефне или тебе в большинстве случаев достаточно понимания что вэлью будет использован в рамках дефна.
источник

SP

Stas P in Clojure — русскоговорящее сообщество
ну ок. свои особенности. я понимаю
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
И это не такая большая цена по сравнению с тем, что ещё предлагает кложа с помощью этой конструкции.
источник

A

Andrey in Clojure — русскоговорящее сообщество
это не цена, это бонус
источник

AC

Alexey Cheremisin in Clojure — русскоговорящее сообщество
Да ведь (defn [...] ...) = (def (fn [...]...))
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Несколько мест - значит глобальное, значит def, если а одном скоупе - значит let
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Если "локальное" в неймспейсе - private делай
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Все просто
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
А ещё в кложе код более структурированный в том смысле, что меньше синтаксических неявностей. И это тоже открывает большие возможности.
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Надо менять глобально - атом, надо менять локально - скорее всего  не надо, переписывай
источник

A

Andrey in Clojure — русскоговорящее сообщество
чем локальнее твои биндинги, тем чище и поддерживаемее твой код в итоге будет. Ничто не мешает тебе сделать внутри функции лет на все тело функции и это нормальная практика во всех лиспах)
источник