Ayrat
Filter.beforeAfterExSync (fun _ -> ()) (konst()) (fun (req,ex) -> ... Ох, вот ещё мякотка, K-комбинатор IN THE WILD
Ayrat
FOR LAMBDA CALCULUS
Ayrat
а всё для того чтобы обработать ебаный ексепшун
Ayrat
без K-комбинатора ну никуда
Ayrat
я пока этот сервис переписывал ебало себе в кровь разбил
Ayrat
от фейспалмов
Ayrat
тем более konst() ========== ignore
Roman
это пишут люди, которые про фшарп на собесе узнали?
Урусай
А что такое konst?
Ayrat
это пишут люди, которые про фшарп на собесе узнали?
Вот такой код скорее пишут ОПЫТНЫЕ F#исты
Ayrat
А что такое konst?
K-комбинатор
Roman
Вот такой код скорее пишут ОПЫТНЫЕ F#исты
а рекурсию делают через Y или как лохи через rec?
Ayrat
а рекурсию делают через Y или как лохи через rec?
ну Y-комбинатор у нас упорки в прелюдию вынесли. НЕ ЗНАЮ НАХУЯ
Ayrat
Надо поискать для ржаки, вдруг кто-то заюзал
Roman
охуенно
Ayrat
/// Fixed point combinator. /// Passes a function to itself. let rec fix f a = f (fix f) a
Ayrat
Полезно
Vasily
Чем больше я узнаю про джет
Vasily
Тем страшнее мне становится
Roman
тем больше понимаешь, почему Айрат предпочел на скале с нуля чем на фшарпе то, шо есть?
Ayrat
Чем больше я узнаю про джет
Энтерпрайз обыкновенный
Ayrat
Но, надо сказать, концентрация маразма тут гораздо меньше чем в энтерпрайзе которые я видал до джета
Ayrat
тут не так много такого стаффа.
Roman
ну кстати мб это действительно обычная хуйня, только не из ООП а из ФП
Ayrat
У еглифа дохуя, да. Ему тяжко
Ayrat
Они в команду набирают только отборных упырей
Roman
и его взяли)
Ayrat
меня тоже взяли!
Roman
вы ж вразных командах
Ayrat
я не пошёл к нему :D
Roman
аа
Roman
локти наверное кусаешь ща
Ayrat
ну к нему бы я пошёл, но помимо него там ещё рыл 30
Ayrat
и бОльшая часть - упыри
Vasily
Ебанаты скорее
Doge
у меня есть антипример кстати про этот decode handle interpret паттерн
Так тут речь была про фри монады, а не просто interpret паттерн.
Doge
А фри монады (как и все фри конструкции) штука более чем полезная.
Roman
а почему кстати называется фри? Это свободная монада или бесплатная монада?
Doge
Как пример: https://tpolecat.github.io/doobie/ Вот эта неплохая либа внутри сделана на фри монадах целиком. Точно так же и с fs2 примерно.
Roman
Вроде как не привязанная к контексту
хм, у меня была версия, что нахаляву, пушто судя по ответу на СО компилятор хаскеля сам ее генерирует, когда ты объявляешь функтор
Doge
а почему кстати называется фри? Это свободная монада или бесплатная монада?
Значит не обладает никаким свойствами, кроме тех, что нужны для того чтобы выполнялись законы для монады: return a >>= f ≡ f a m >>= return ≡ m (m >>= f) >>= g ≡ m >>= (\x -> f x >>= g)
Doge
Free бывают не только монады, но и другие обьекты около категорийные. Т.е. можно почитать о free applicative, как пример: https://www.youtube.com/watch?v=H28QqxO7Ihc
Roman
Время учить теоркат
Vasily
Я вот все собираюсь, но опасаюсь за кукушку
Doge
Время учить теоркат
Не особо и нужно. Если сам по себе интересен, то да, будет прикольно.
Roman
Не особо и нужно. Если сам по себе интересен, то да, будет прикольно.
Но как же я буду тогда комбинаторы в прод тащить?
Vasily
Ну нахуй
Doge
Но как же я буду тогда комбинаторы в прод тащить?
Словно для комбинаторов нужен теоркат
Vasily
Ща читаю код на скале из 8 строчек, у меня взрывается мозг
Vasily
if (offsetId == 0 && addOffset == 0 && minId == 0 && (maxId == 0 || maxId == Int.MaxValue)) { if (limit > 0 && limit <= serverLimit) Last(limit) else None } else { val leftLimit = limit + addOffset val from = if (minId > 0) math.max(offsetId - leftLimit, minId + 1) else offsetId - leftLimit val rightLimit = limit - (leftLimit + 1) val to = if (maxId > 0) math.min(offsetId + rightLimit, maxId - 1) else offsetId + rightLimit if (from < to && to - from <= serverLimit) { if (from >= offsetId) Top(offsetId = offsetId, offset = from - offsetId, limit = to - offsetId) else if (to <= offsetId) Bottom(offsetId = offsetId, offset = offsetId - to, limit = offsetId - from) else Range(offsetId = offsetId, bottomLimit = offsetId - from, topLimit = to - offsetId) } else None } }
Vasily
Ты сам попросил
Doge
Да, хорошо, забористо.
Vasily
Вот и я думаю, что ничотак
Doge
Надо цикломатическую сложность посчитать.
Vasily
Код занимается тем, что на основе входных параметров определяет, какие элементы брать из списка
Vasily
Top,Bottom,Range или Last
Vasily
Пытаюсь раскурить логику
x
Это джава какая-то
Doge
Это джава какая-то
Да не, просто средненько написанная логика расчета каких-то индексов. Она так всегда будет выглядеть.
x
Надо чат переименовать. «Проводы Айрата в Scalы»
Doge
Ну разве что на гардах хаскелевских было бы приятнее. Или на деструктурах кастомных.
x
только «скалы» с большой
x
она же большая
x
и страшная
Vladislav
SSкалы
x
а внизу джвм
x
ужос!
Vladislav
Oleg
а это законно?
Урусай
Когда платят за количество символов и время работы алгоритма
AlexB
а это законно?
особенно приятно будет, когда туда отрицательный инт зашлют 👌
Roman
так много вопросов, так мало ответов
Vladislav
Roman
еще один профит интерпретатора: можно встраивать легко воркфлоу в воркфлоу. https://github.com/atsapura/CardManagement/commit/3e208305124374f773f580f615a5f1a0c12f78cd