Size: a a a

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

2020 September 22

E

ETL in Clojure — русскоговорящее сообщество
(defmacro own-def [s arg] `(def ~(symbol s) ~arg))
источник

DS

Denis Shilov in Clojure — русскоговорящее сообщество
с макросом неспортивно )
источник

DS

Denis Shilov in Clojure — русскоговорящее сообщество
и семантика другая
источник

E

ETL in Clojure — русскоговорящее сообщество
(defn own-def [s arg] (eval `(def ~(symbol s) ~arg))
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
ясно примерно. макрос, eval, intern. последний - самый кложе-специфичный.
источник

DS

Denis Shilov in Clojure — русскоговорящее сообщество
Используя eval ты отдаешь вычисление def текущей реализации компилятора (см. ссылку на github), используя intern, ты типа пытаешься реализовать def самостоятельно, но там уйма нюансов
источник

E

ETL in Clojure — русскоговорящее сообщество
Being functional programmer.

Expectations:
(set-macro-character #\’
#’(lambda (stream char)
(list ’quote (read stream t nil t))))

Reality:
(require [emoji.core :as e])
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Denis Shilov
Да балуется человек, пытается понять как эмулировать поведение def из функции
А что, ещё никто не сказал, что не надо так делать?
источник

DS

Denis Shilov in Clojure — русскоговорящее сообщество
Для экспериментов в репле - почему нет ?
источник

DS

Denis Shilov in Clojure — русскоговорящее сообщество
В прод. коде ? Юзкейс найти будет тяжко )
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Denis Shilov
В прод. коде ? Юзкейс найти будет тяжко )
не, ну придумать юзкейс можно, только за это надо бить веником
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
это очень плохая идея
источник

DS

Denis Shilov in Clojure — русскоговорящее сообщество
Вообще символы генерировать в рантайме не стоит. Особенно бесит когда сгенерят кейворд, а потом в другом месте юзают его как литерал
источник

DS

Denis Shilov in Clojure — русскоговорящее сообщество
А ты сидишь и ищешь - откуда же этот кейворд прилетел
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Denis Shilov
Вообще символы генерировать в рантайме не стоит. Особенно бесит когда сгенерят кейворд, а потом в другом месте юзают его как литерал
не, ну если локальные - ещё можно
источник

DL

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

DS

Denis Shilov in Clojure — русскоговорящее сообщество
Локальные нужны по сути только в макросах, и там они почти не мешают, с учетом гигиены
источник

DS

Denis Shilov in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
потому что киворды могут откуда угодно и так приехать
Только если ты edn десериализуешь от внешней системы
источник

DS

Denis Shilov in Clojure — русскоговорящее сообщество
которая еще и не под твоим контролем, а много ли таких систем ? :)
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Denis Shilov
Только если ты edn десериализуешь от внешней системы
ну да, я например про keywordize-keys
источник