Крылатый
> Норвегия, ввиду климатических изменений, полностью прекращает добычу нефти, планируя заменить её ториевой энергетикой.
Вот это уже не очень реалистично, кстати. У них же вообще нет атомной промки, откуда взяться компетенциям в гибридных ториевых реакторах?)
Bonart
Там прикольно, насколько разумно, конструктивно и гуманно действуют русские. А у норвежского сопротивления самый нормальный представитель - малолетний чеченский психопат
Anatoly
https://cdn.discordapp.com/attachments/712695309863485492/724342975563431966/IMG_20200621_222001.jpg вот вам вчерашнего ужина. соус из смородинового варенья, груши, лука, перца и чеснока
Bonart
Ну вот, через политоту к кулинарии :)
Anatoly
(готовила жена, не я)
Анна
Отлично, давайте про кулинарию!
Анна
Крылатый
Анна
Правда у меня последнее время сил готовить особо и нет 🌚
Анна
Vasily
Чо ее фотать, ее есть надо
Анна
Чтобы вместо политоты обсуждать фотки еды!
Mikhαil
фотаньки еды надо!
Планирую к вечеру стейк из тунца делать - скину если норм получится
Dmitry
пытаюсь в совершенстве научиться готовить пасту+копченная курица+томаты+томаты в своем соку+маслины+тыквенные семечки+специи
пока что все время перебор с пастой, но по вкусу все равно неплохо
Vasily
Anatoly
Анна
Vasily
Откуда у народа столько времени?
Vasily
Хотя я в субботу готовил стейки на мангале
Vagif
Vasily
Получились прекрасно, как обычно
Vasily
Anatoly
берёшь ребёнка, играешь с ним. а жена еду готовит
Dmitry
что значит перебор с пастой?
пасты больше, чем добавки (доабавка - это приготовленный "соус" из всех остальных ингридиентов)
Анна
Vasily
Мейнкун
Vagif
Vagif
Да, мейнкун
Анна
сразу видно, что это люди принадлежать коту, а не наоборот
Vasily
У меня вот мечта, когда откроются рестораны, придти в ресторан, сесть за столик, а дальше как-то мечты заканчиваются
Анна
Mikhαil
Mikhαil
(но я бы пока не пошёл конечно)
Vasiliy
Anatoly
можно ещё с собакой играть час-два
Dmitry
Anatoly
Vladislav
Anonymous
короче, сценарий: есть ну просто ОЧЕНЬ чистая функция, которая решает какую-либо проблему домена. все отлично, пока работу это чистой функции не нужно логгировать, но вообще ведь нужно. и тут два варианта: либо допустить разумную меру нечистоты, пробросив логгер как параметр, либо через тернии устремиться к звездам и вместо f: A -> B возвращать f: A -> B, [Actions], где Actions - местный тип-метаописание действий, которые должны быть выполнены где-то вовне, в условном IO. кто-то второй подход активно использует у себя?
Max xbim 🌴
а зачем логирование внутри функции если она чистая?
Anonymous
чтоб на бизнес-инцидентах всякие там аналитики могли отследить все, что происходило. например, у тебя может быть какой-то if внутри и тебе нужна РАЗНАЯ запись в ллогах в зависимости от того в какой из бренчей ты попал.
Ayrat
Mark
Про логирование надо помнить, что оно превращает простой и понятный код в сложный и непонятный.
Mark
Но если уж и правда надо, то стандартный подход к "чистому" логированию это монада Writer.
Anonymous
Anonymous
Anonymous
а в F# придется же явно везде передавать
Anonymous
а как напеЙсать логгер через дырку я ваще нипонял
Mark
Ну вот этот список действий [Action] это как раз оно. На каждом шаге генерируешь не только результат, но и запись Action, и на выходе имеешь список того, что было.
Anonymous
Anonymous
но тащить такое в прод я не готов - тут люди еле-еле в async могут. какие монады? навредит только.
Mark
Можно не называть это монадой :)
Ayrat
ну то есть зачем имплиситы если можно прям тупо повесить трейт
Anonymous
Ayrat
в этом плане скала местами прям ОКЕЙ
Ayrat
я бы такое в фшарпе хотел
Ayrat
ну, это и есть тайпклассы да
Anonymous
да, выглядит добротно.
Ayrat
но вот любители пологировать через дырку для меня все дружно попадают в категорию уебанов, не могу ничего с собой поделать
Ayrat
если что, там это так выглядит
def foo[T: Async, Par, Monad, ……., Logger](…) =
for {
abc <- …
_ <- implicitly[Logger].info “abc”
} yield abc
Anonymous
ну Хаскелисты ж
Anonymous
что с них взять
Ayrat
во, дописал
Anonymous
в принципе, ничего такого плохого с [Actions] я не вижу, кроме того, что МНОГАБУКАФ
Anonymous
Anonymous
что-то не вижу, monad stack
Anonymous
как же IO?
Ayrat
как же IO?
слишком абстрактно, у них щас мода на более гранулярные тайпклассы идёт
Ayrat
типа вот Par, Async и пр
Anonymous
Ayrat
всё так.
Anonymous
скоро начнут гнать староверов.