Vladislav
Почему и зачем
Roman
думаешь, многовато?
Vladislav
Что было в голове у него
Roman
я не знаю
Doge
11 дженериков
Это типа эмуляция hkd?
Doge
Да, это очень похоже на эмуляцию hkd
Doge
В фшарпе проще уж было на рефлексии, хоть её я и не очень люблю
Roman
А это нормально вообще "Some None"? Как-то странно все это...
да, конкретно в этом случае это нормально
Roman
а дата в хаскеле это наши рекорды?
Doge
а дата в хаскеле это наши рекорды?
Ну тут просто имеется в виду использование типов высшего порядка в полях типов данных.
Roman
А, понял
Doge
А, понял
То есть был бы в вашем случае: data Supplier f = Supplier { account :: f Account, name :: f String, ... } type Pure = Supplier Identity type Delta = Supplier Maybe
Doge
Но в фшарпе, где типов высшего порядка нет, это какой-то запредельный уровень наркомании
Roman
да, прикольная тема.
Roman
Жаль, что чувак предпочитает пиздеть на то, что в фшарпе слабая система типов, и писать как на хаскеле, вместо того, чтобы сука писать на фшарпе
Roman
бля, все становится на свои места
Doge
Жаль, что чувак предпочитает пиздеть на то, что в фшарпе слабая система типов, и писать как на хаскеле, вместо того, чтобы сука писать на фшарпе
Жалко, да. То есть смысл юзать hkd есть, т.к. оно может изрядно бойлерплейт убрать. А нафига его вводить, если оно столько бойлерплейта даёт, мне не очень понятно
Roman
и сразу понятно, почему все вокруг утилс и 80% кода преодолевает проблемы, созданные самим же чуваком
Doge
Карго культ какой-то
Roman
Карго культ какой-то
подозреваю, что он просто не знает дотнет и панически боится рантайма, исключений и прочего говна. Конечно, его подход только усугубляет ситуацию
Roman
Пушто он не похож на типичного фанатика лютого ФП
Vladislav
бля, все становится на свои места
Теперь можно увольняться
Roman
лол
Viacheslav
На такой код даже в лучших домах Джета посмотрели бы косо!!1
Потому что подозрительно похож на их собственный?)))
Ayrat
Потому что подозрительно похож на их собственный?)))
Ну такой лютой хуйни я у нас не видел. Да, были кастомные перегрузки на оператор $ чтобы имитировать перегрузки функций. Да, была дичь с кучей типов. Да, была дичь с ФромДжсон, ТоДжсон (но с опоавданием в виде скорости хотя бы) Но имитировать хкд хаскеля никто не пытался!!11
Vasily
Везде своя хуйня
Shub
Shub
ну например
Vasily
Адовая ебанина
Shub
Vasily
Я так понимаю, на символах явно экономят
Shub
Shub
отдельного котла заслуживает именоваоние
Vasily
Ну имена типов не говорящие, да
Shub
при этом дичайшие сообщения в логи длиной по 200 символов. в коде прям так и записаны одной строкой, без переносов
Vasily
Бывает, чо
Shub
веришь, если в типе 5 параметров, то пусть он разговаривает хоть самым медовым голосом из сказки - это не особо поможет
Vasily
Чот меня тенденция пугает, что подобная хроническая хрень имеет свойство пролезать в проекты на фарше
Vasily
У себя тоже наблюдаю, но борюсь
Shub
я затрудняюсь понять ход мыслей того, кто подумал, что ситуация, когда надо свести 5 разных типов воедино - достаточно общая и часто встречающаяся ситуация, чтобы пилить под это всю эту шизофазию
Shub
при этом оно все сидит в каталоге "MoveToPlatform"
Vasily
Причем, чсх, люди искренне уверены в том, что творят добро
Shub
Причем, чсх, люди искренне уверены в том, что творят добро
ну в моем случае эти люди вообще ни о чем не думают. если б на них насели паразиты мозга, питающиеся мыслями, то они бы сдохли от голода
Doge
Хмм... А зачем использовать стрелки одновременно с monad comprehension (причем от async)?
Doge
Какой в этом смысл?
Doge
Если уж использовать стрелки, то использовать >>>, &&& и т.д. и т.п. Или, если уж речь строго о клейсли, то имеет смысл тогда сразу туда и ошибки запрятать, чем городить матчи. И сочетать их либо стрелочным комбинаторами, либо монадическим синтаксисом для клейсли
Igor
А у вас есть какая-нибудь кодогенерация?
Ayrat
Пытаюсь расшифровать до сих пор
Ayrat
Возможно надо рандомно слова местами поменять чтобы смысл появился
Doge
А у вас есть какая-нибудь кодогенерация?
Да там не кодогенерация нужна, а включить ошибку в AsyncArrow и использовать comprehension для этого самого AsyncValidateArrow
Igor
Да я в общем интересуюсь
Shub
Какой в этом смысл?
ты пытаешься найти рациональную логику в действиях людей в пограничном состоянии. это все равно, что искать закономерности в картинках калейдоскопа.
Shub
кстати, это был мой первый вопрос: почему стрелки есть, а комбинаторов нет, не завезли, что ли?
Shub
ответ был примерно такой: на стрелках писал Н (который щас директор этого хозяйства) и ему нравится, когда остальные пишут на стрелках. но в комбинаторы ни Н, ни мы не смогли, поэтому остановились на нейтральной территории - поинт-фри со стрелками, ВЫГЛЯДИТ ПОХОЖЕ
Shub
примерно на середине этого ответа я понял, что надо мною стебутся и больше эту тему не поднимал
Doge
То есть буквально определение каргокульта
Doge
(Хотя с клейсли опять-таки можно на монадических комбинаторах и синтаксисе, но как я понял, у вас и его нет для этих стрелок)
Андрей
интересно, как бы это выглядело на go, или на баше ...🤔
Диёр
интересно, как бы это выглядело на go, или на баше ...🤔
o, ok := st['lk'] if !ok { panic('kekeke') } r, err := o.A() if err != nil { ctx.S() <- cctx.N(err).B() }
Shub
(Хотя с клейсли опять-таки можно на монадических комбинаторах и синтаксисе, но как я понял, у вас и его нет для этих стрелок)
Формально комбинаторы есть. Базовые по крайней мере и без гарантий выполнения даже базовых стрелочных законов, но есть.
Shub
Просто в этой ситуации говорить «давайте использовать комбинаторы для стрелок» - все равно, что предложить полинаркоману «а давай ты еще и на психотропы присядешь»
Vladislav
Иногда
Vladislav
У романа _11_
Doge
Просто в этой ситуации говорить «давайте использовать комбинаторы для стрелок» - все равно, что предложить полинаркоману «а давай ты еще и на психотропы присядешь»
Ну так хоть какой-то смысл в использовании стрелок был. Зачем их использовать, если все, что ты с ними делаешь, это вызываешь как функцию, для меня немного загадочно.
Ayrat
@atsapura беги оттуда!