Size: a a a

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

2021 November 24

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
сорри криво прочитал
так что тебе именно объяснить?
почему первый вариант не намекает, или почему второй намекает?
они же разные, почему у них одинаковые намеки должны быть?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
к тому же doto даже не threading макрос
источник

ND

Nikita Domnickij in Clojure — русскоговорящее сообщество
вообще не понятно как ты видишь использование дуту без сайдэфектов
источник

DL

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

ND

Nikita Domnickij in Clojure — русскоговорящее сообщество
можно, только смысла не много
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Ничего. Для меня doto - это просто манипуляция с мутабельным обьектом. Причём вероятно натянутая на сколько возможно на иммутабельность.
Side effect’ы конечно не исключены, но это отдельно смотреть надо. И это не прямое следствие из doto.
источник

ND

Nikita Domnickij in Clojure — русскоговорящее сообщество
то есть манипуляции с мутабельным объектом это не сайдэфект?
источник

DL

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

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
В итоге-то нет.
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
В итоге-то не всегда.
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ты встретил людей, для которых манипуляция с мутабельным обьектом есть частный случай сайд эффекта
такое случается 😊
источник

ND

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

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Вот мой пример:

(doto (Person.)
  (.setAge 42)
  (.setName “John Smith”))

Я конечно понимаю, что там аж два раза меняется стейт.
Но в целом если посмотреть.
У нас «чистое» создание объекта. Без изменений во внешнем мире. Все внутри одной конструкции и на выходе ровно одна ссылка на одно состояние объекта.
источник

DF

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

ND

Nikita Domnickij in Clojure — русскоговорящее сообщество
видишь суслика? а он есть
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Я придумал!
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
а в таком?
(doto (Person.)
  (.setAge 42)
  println
  (.setName “John Smith”)
  println)
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Есть другое правило про doto и side effects:

Если используете doto, то позаботьтесь о том, чтобы в нем не было side effects (изменение внутреннего состояния создаваемого объекта не считать side effect’ом , как бы ни хотелось)
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Во! Да!
Так не делайте!
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
да ты фашист какой-то 😊
источник