Size: a a a

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

2020 September 17

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Это не важно уже
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
я в курсе, про приведение типов выще писал
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Oleg Roshchupkin
Это не важно уже
Буквы J там нет, поэтому хоть 22
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
The2lb3oz4dr10½grOfHedgehogs
Нет #? значит меньше возможности такого разного поведения
в cljs хватает разницы и так — https://www.clojurescript.org/about/differences
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
The2lb3oz4dr10½grOfHedgehogs
Я вам на конкретном примере наглядно показываю сколько может быть проблем от исполнения разного кода на разных платформах в одном и том же месте. Сейчас у меня в кодобазе два (одно) использование #? И оно взрывается на столько разным поведением. А в проекте побольше будут сотни #? И все это приводит к осложнению тестирования и багам
Я честно за пример с #(, потому что проще принять факт, что ты на платформе с её особенностями, чем прыгать через обручи.
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
и это только задокументированное
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Или уж не мяться и проверять в cljs через regexp 😉
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Oleg Roshchupkin
Я честно за пример с #(, потому что проще принять факт, что ты на платформе с её особенностями, чем прыгать через обручи.
Не знаю. Я хочу кложа код покрыть кложа тестами и париться в будущем как можнo меньше
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Oleg Roshchupkin
Или уж не мяться и проверять в cljs через regexp 😉
Ну вот уж думаю
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
А то еще и вовсе строку разбирать самостоятельно как в школьных задачках
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Kirill Chernyshov
и это только задокументированное
например недавно наткнулся на такое — в контексте defmulti
для нормальной работы с ними из репла я обычно пишу
(def foo nil) (defmulti foo …)
ну и дальге методы
ничего криминального с точки зрения кложуры
но в cljs это взрывается с ебейшей ошибкой откуда-то из кишков
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Kirill Chernyshov
например недавно наткнулся на такое — в контексте defmulti
для нормальной работы с ними из репла я обычно пишу
(def foo nil) (defmulti foo …)
ну и дальге методы
ничего криминального с точки зрения кложуры
но в cljs это взрывается с ебейшей ошибкой откуда-то из кишков
declare не спасает?
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
(declare foo)
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
нет, потому что defmulti разворачивается в defonce и изменеия в диспатч функе не подхватятся
declare не меняет этого поведения
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Ты про диспатч функу или сам метод?
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
первое
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Вроде и в кложе так делать нельзя
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
почему нет
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
можно
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Надо
(declare dispatch-fn)
(defmulti my-multi #'dispatch-fn)
(def dispatch-fn ...)
источник