Alexander
модераторы кто кроме меня
Leonid 🦇
Alexander
так то!
кана
что?
DI это по сути обобщение модуя по зависимости. Вместо использования конкретной зависимости мы делаем модуль полиморфным по любой зависимости, подходящей под интерфейс.
Почему не стоит делать DI? Не использовать reader совсем?
Конечно, я сейчас говорю больше про ioc, чем про di
A64m
не обобщение модуля, а накостыливание модуля подручными средствами
Leonid 🦇
я ничего не понимаю. передаю стейт аргументом, например конструктору. как деды ещё делаи.
Leonid 🦇
со своими контейнерами и иксемелем идите в лес
Leonid 🦇
какой ридер в питоне?
кана
Ты сказал "в любом языке". В хаскеле есть ридер
Leonid 🦇
ридер это еще один аргумент
кана
Ну а трава зеленая, как это что-то меняет?
Влод
ну да а я вот не шарю в DI
Влод
можно пояснить зачем у меня возникнет необходимость пользоваться ридером
Влод
я уже раза 3 спрашивал
Влод
мне скорей всего нормально хорошо объясняли, ты в том числе
Влод
просто в памяти не откладывается
Влод
если это может быть ради тестов, то объясни в контексте тестов
Leonid 🦇
@vlastachu что-бы не таскать лишние аргументы например. Ридер это такой "контекст" в дополнение к вычислениям. Можно туда сунуть конфиг, или пул коннектов к дб
Leonid 🦇
или и то и другое
Leonid 🦇
и луку мешок
Влод
ну а чем лучше аргументов?
Leonid 🦇
удобнее
Leonid 🦇
абстрактнее
Влод
а чё бы в рекорд их не сложить? (ну наверное у меня сейчас неправильная интуиция чем удобнее и чем абстрактнее)
Влод
всё равно же ты этот ридер через все эти функции пропихиваешь
Влод
как и аргументы
кана
Влод
даже не знаю сумарно больше текста выйдет или меньше
кана
Я могу пример написать через час с и без ридера
Влод
ну типа да. там где-то вверху заворачиваем конфиг и где-то внизу его используем
и на всех промежуточных функциях передача
Влод
и тип если убрать бойлерплейт с явной передачей то получаем бойлерплейт с монадами/трансформерами
A64m
ну так если монады и так уже есть
Leonid 🦇
всегда есть MonadReader r ((->) r)
A64m
да, ридер еще для написания j-образного кода можно использовать
Влод
Влод
Alexander
функция принимающая аргументом r является инстанс MonadReader
Vladislav
редактирую .ghci конфиг файл. Мне нужно добавить два сета
:set -interactive-print=Text.Show.Unicode.uprint
:set -interactive-print=myPrint
где myPrint функция, определенная уже. Когда я устанавливаю один параметр, другой отменяется, и наоборот. А как включить оба?
Alexander
ничего, что оба сета устанавливают одно и тоже значение?
Vladislav
разное. Один поддержку кирилицы, другой цветовой ghci
Alexander
принтер один
Alexander
аналогично тому что сделать a=1;a=2 и удивляться что туда не оба значения записались
Alexander
ответ: написать myprint который внутри будет вызывать Text.Show.Unicode.uprint
кана
putStrLn замени на uprint заимпортив Text.Show.Unicode.
Alexander
вот это вот
кана
а, может не получится
кана
uprint это просто putStrLn . ushow
Vladislav
кана
а у него тут свой show из IPPrint
кана
тут наверное без разбора кода либ не сделать
кана
выбирай, или кириллица, или прити-принт)
цвет, полагаю, можно сделать и там, и там
чтобы выбрать, нужно использовать pshow из IPPrint или ushow из Text.Show.Unicode
Vladislav
цвет сделать и там и там? Наверное. Но через друге инструменты.
Alexander
там есть какие-то интерактивные моменты, но на порядок хуже
Antilopa
Почему OCaml не такой популярный как Haskell?
Антон
Antilopa
Ну я сужу по тому по вакансиям и маломоу количеству телеграм чатов
Alexander
о, а где-то есть вакансии на камле?
Antilopa
Ahref и JaneStreet только)
Alexander
а блин! я вопрос не распарсил
Alexander
=)
Alexander
все сходится тогда
Antilopa
Для штук типа MirageOs, и то что делает JaneStreet, чем OCaml лучше подходит чем Haskell?
Alexander
что умеют то и подходит
Антон
В Ocaml банально возни меньше. Хотя бы мутабельность нормальная есть
Андрей
И однопоточность)
Андрей
Нормальная)
Антон
Ну это уже другой вопрос
кана
кана
я про окамл совсем ничего не знаю, возился только с ризоном (и ризон это вообще не рядом с хаскелем, глупо сравнивать)
Антон
Неправильно выразился. У OCaml порог вхождения ниже
Alexander
у окамля связь с пруверами лучше
Alexander
несколько
Андрей
Во, окамл во фронте самое то, и многопоточность относительно хорошо ложится и мутируй что хочешь и пакетный менеджер нормальный
кана
f# же более менее популярен