Shub
3. cats, zio, scalaz, которые простой примитивный код превращают в не пойми что
Zio вроде не слишком сложный, я могут ориентироваться в сорсах, это при том, что меня выгнали из церковно-приходской школы и я не дошёл даже до «Физики» Краевича конца Programming in Scala. У них там собственный словарь идиоматических выражений - это бОльшая сложность, чем их апишечка. Простите, АЛГЕБРА то есть
Shub
Так у всей этой троицы (кроме разве что скалаз) внутри всё более-менее просто.
Ну на молекулярном уровне все люди внутри одинаковы, но вот Дегуз тянет в сторону правильных с точки зрения индустрии вещей, заимствуя минимально необходимые вещи, а остальные щаняли позицию «какая-такая индустрия? Не знаем никакой индустрии, отойдите, не мешайте 9 дырку сверлить»
Shub
Так зио не кардинально отличается от всех остальных. Разве что чуть меньшей кривизной дизайна вокруг отмены тасок, пробросом типа ошибки и окружения и полностью идиотским дизайном с ZLayer
Когда я смотрю на клиентский код на зио, то я вижу «код на плохо знакомом мне фреймворке, который решает задачу Х». Когда я смотрю на код на котах/скалаз, то я думаю что это код с IOCC
Shub
Причем судя по вопросам от юзеров этих фреймворков эио все пет-проекты, потому что сложно выдумать организацию, которая будет ждать месяцами, пока кодерок придумает, как ему логи в консоль писать
Ayrat
а вдруг завтра другой stdout изобретут, пригодится
Doge
Когда я смотрю на клиентский код на зио, то я вижу «код на плохо знакомом мне фреймворке, который решает задачу Х». Когда я смотрю на код на котах/скалаз, то я думаю что это код с IOCC
Так разница как раз в том, что зио решает одну более-менее конкретную задачу. А коты/скалаз - либы с кучей разных ФП абстракций иногда даже без какой-то реализации
Ayrat
и назовём её консольная алгебра чтобы всех запутать
Doge
Просто чтобы у всех были общие интерфейсы для этих самых абстракций
Shub
а вдруг завтра другой stdout изобретут, пригодится
Ну это грустно на самом деле. Столько усилий, и все ради выхода на один уровень с питоном по уровню скорости деливери и багов
Shub
Просто чтобы у всех были общие интерфейсы для этих самых абстракций
Как мне кажется, задачу абстракций эти фреймворки зафейлили, просто зио зафейлился меньше других
Doge
Ну это грустно на самом деле. Столько усилий, и все ради выхода на один уровень с питоном по уровню скорости деливери и багов
Ну это вообще взятое из головы какое-то рассуждение. Писал на прям совсем ФП скале - каких-то особых проблем со скоростью и качеством не заметил.
Doge
Как мне кажется, задачу абстракций эти фреймворки зафейлили, просто зио зафейлился меньше других
В смысле? Там абстракции стандартные для ФП мира, тупо слизанные из хаскеля тайпклассы, чуть на более мелкие куски разве что разбитые
Doge
Ну кроме котоэффектов где чуть своей хрени нагородили с Sync и т.п.
Shub
Ну это вообще взятое из головы какое-то рассуждение. Писал на прям совсем ФП скале - каких-то особых проблем со скоростью и качеством не заметил.
Если бы сейчас была полемика, то я бы доказал уважаемому Доге... (но мне надо вешать полочку, а твой часовой пояс че-тотне помогает продуктивым дискуссиям)
Ayrat
В смысле? Там абстракции стандартные для ФП мира, тупо слизанные из хаскеля тайпклассы, чуть на более мелкие куски разве что разбитые
я тоже думаю что зафейлено, но не по причине плохого копирования с хаскеля, а потому что на этих абстракциях херню делают для бизнеса невалуйную
Ayrat
дегуз кажется самым адекватным из этой шайки, но всё равно я не понимаю необходимости в трёхдырочной монаде для асинков.
Doge
я тоже думаю что зафейлено, но не по причине плохого копирования с хаскеля, а потому что на этих абстракциях херню делают для бизнеса невалуйную
Так эти же абстракции в большей степени для авторов либ, чем для прям совсем прикладного кода. И удобно их иметь едиными, чем если каждый у себя в либе свое изобретает
Shub
я тоже думаю что зафейлено, но не по причине плохого копирования с хаскеля, а потому что на этих абстракциях херню делают для бизнеса невалуйную
Как-то так, да. Я в принципе держу огромное допущение, что я чего-то не знаю/недопонимаю, потомоу что ну не могут же все эти люди так внаглую страдать херней? Может это «щас день потеряем, потом за 5 минут долетим»?
Doge
дегуз кажется самым адекватным из этой шайки, но всё равно я не понимаю необходимости в трёхдырочной монаде для асинков.
Трехдырочности я тоже не разделяю, хотя ряд плюсов она конкретно в скале имеет. (Тупо эффективнее, чем если иметь явный EitherT ReaderT IO стэк)
Андрей
Amen
allah akbar! async { let! wtf1 = task1 let! wtf2 = task2 let! wtf3 = task3 return wtf3 } ну Семен Семеныч, чья б корова F#-ила )) я уже не говорю про task1 .map(foo) .map(bar) .baz(baz) как замена F# эквиваленту, без вариантов task1 |> Async.map foo |> Async.map bar |> Async.map baz
Ayrat
учитывая что в фшарпе есть и экстенш методы и операторы
Ayrat
кстати, линк на экстеншнах заместо Seq.map продвигается Святым Саймом
Doge
allah akbar! async { let! wtf1 = task1 let! wtf2 = task2 let! wtf3 = task3 return wtf3 } ну Семен Семеныч, чья б корова F#-ила )) я уже не говорю про task1 .map(foo) .map(bar) .baz(baz) как замена F# эквиваленту, без вариантов task1 |> Async.map foo |> Async.map bar |> Async.map baz
Скорее большая разница между скалой и тем же фшарпом, что в скале, если не нравится стандартный монадический синтаксис, то это запросто исправить макросами или плагином к клмпилятору
Shub
И у них как раз вроде внутренних либ дофига, насколько я понимаю
Развелось, б$&ть, писателей либ, в стране заводы стоят. Кстати, нехороший знак по моим понятиям - писание внутренних либ. Клуб любителей жет на эту тему очень много рассказать могут
Doge
При этом я видел и внутренние либы, которые были отвратительны по всем обычным меркам, но зато количество работы разрабам сокращали в разы
Андрей
ойвсе, церковно приходские холивары
Hog
Послушайте. Сегодня суббота. Нахера вам скала в субботу?
Mikhαil
Вот зачем
Mikhαil
В субботу самое то
Андрей
Разбежавшись прыгнуть со скалы
в прохладную пучину, седня сын с 7,5метров прыгнул, горд до лампочки. бассейны некрытые открыты, красота!
Hog
в прохладную пучину, седня сын с 7,5метров прыгнул, горд до лампочки. бассейны некрытые открыты, красота!
Смелый :) я в мексике метров с трёх еле заставил себя в сеноту прыгнуть - там блин дно видно!
Hog
Разбежавшись прыгнуть со скалы
Вот ты был и вот тебя не стало :) я сегодня почему-то напеваю «ели мясо мужики» :))))
Андрей
Лишь осознав, кого ты scala потеряла))
Mikhαil
Вот ты был и вот тебя не стало :) я сегодня почему-то напеваю «ели мясо мужики» :))))
Давно не слушаю ни то ни другое но голос подростка все равно невольно напевает)
Alfred
Добрый вечер, не могли бы подсказать как можно в Array.fold передавать индекс элемента который выбран ну типа "iteri"?
Hog
Сделать индекс частью стейта
Alfred
Сделать индекс частью стейта
неее, стейт уже используется )
Hog
неее, стейт уже используется )
И чо? Туплю сделай «стейтом» - индекс и
Ilya
Блин!
У тебя подробнее зато)
Hog
Я медленно набираю на телефоне
Ilya
Гений)
Все проблемы решаются с помощью туплов! В соседнем чате был словарь с туплом из 8 элементов в качестве валью, так что у тебя нет варианта не согласиться.
Shub
Шалунишка!
... всю ответственность за последствия моих советов, включая (но неограничиваясь) банкротство и увольнение...
Hog
..., я снимаю с себя...
На самом деле я сегодня 5.5 миль протопал по чёрному трейлу и чот мне не очень хорошо :)
Hog
Shub
Жарко же, можно неиллюзорно инсульт получить. У вас там типа очередной так называемый heat wave же?
Alfred
как написать что list интовый ? (list:list int)
Ilya
как написать что list интовый ? (list:list int)
int list или list<int>, но первый вариант предпочтительнее для соответствия официальным гайдлайнам.
Ilya
спасибо)
Ты в доки посматривай. Уверен, что там есть пример с указанием типа. https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/lists
Hog
Ага
Купил, но не попробовал
Hog
Hog
@qq_medvedik вот такое ^^^
Hog
Завтра отпишусь:)))
Dr. Friedrich
а вдруг завтра другой stdout изобретут, пригодится
Ну, вот тут ты неправ. Тестовые фреймворки (ей богу, я не знаю, зачем) постоянно изобретают свой альтернативный stdout и игнорируют стандартный. Это не только в дотнете такое говно.
Dr. Friedrich
Послушайте. Сегодня суббота. Нахера вам скала в субботу?
А что ещё можно делать в субботу? Работать-то нельзя.
gsomix
это где?
Айрат, видимо, говорит про FSharp.Core.Fluent
Ayrat
это где?
Вот я чот найти не могу. Это вроде было в експерт фшарп, но с телефона не ищется