Size: a a a

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

2021 March 24

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
ну и let в thread макросах - это имхо очень плохо
а почему плохо?
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
не понимаю о чём речь, приведи пример плз

(let? [a (foo) :else nil
      b (bar) :is even?
      c (baz) :when (> b c)
      d qux]
 (f a b c d))

я вял их пример и сделал foo, bar и baz функциями
и вот нужно вызовы bar, baz завернуть в транзакцию или в bindings или что-то подобное
как это сделать? никак

а с <<- это элементарно



(<<-
(let [a (foo)])
(when a)
(binding [...]) ;; <--
(let [b (bar)])
(when (even? b))
(let [c (baz)])
(when (> b c))
(let [d qux])
(f a b c d))
источник

DL

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

(binding […] (bar))
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
ну и по поводу ясности, что делает :else или :is? вот это не очевидно
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
>    как это сделать? никак

(binding […] (bar))
и bar и baz и все последующее
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
и bar и baz и все последующее
если все последующие - просто биндишь снаружи пачкой
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
а foo не нужно
источник

DL

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

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
а foo не нужно
не заворачивай
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
ну и по поводу ясности, что делает :else или :is? вот это не очевидно
я не знаю, я let? не пользуюсь, но из аналогичных я юзаю failjure.core/attempt-all и он делает работу good enough
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
мой посыл такой
если уж так случилось, что вынуждены убрать лесенку,
то вместо cond-let, let-else и подобных, которые easy,
_стоит_ посмотреть на <<-
т.к. он simple
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
мой посыл такой
если уж так случилось, что вынуждены убрать лесенку,
то вместо cond-let, let-else и подобных, которые easy,
_стоит_ посмотреть на <<-
т.к. он simple
он simple, но использовать let (и прочие аналогичные формы) в тредмакросах - зло
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
он simple, но использовать let (и прочие аналогичные формы) в тредмакросах - зло
а какие-то агрументы будут?
может я ошибаюсь и тоже пойму, что <<- это плохо?
источник

DL

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

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Интересно, что «вынуждает» убирать лесенку 😊
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Sergey Trofimov
Интересно, что «вынуждает» убирать лесенку 😊
ну например, огромные git-diff
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Sergey Trofimov
Интересно, что «вынуждает» убирать лесенку 😊
не, ну много лесенки плохо, с другой стороны, никто не мешает разбить на функции
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
ну например, огромные git-diff
не показывай вайтспейсные изменения
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
тредмакросы - они именно для потоковой обработки функциями (или макросами, которые работают похоже на функции)
тредмакросы они про синтаксис
а не про потоковую обработку
источник

DL

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