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
Ayrat
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
Doge
А фри монады (как и все фри конструкции) штука более чем полезная.
Roman
а почему кстати называется фри? Это свободная монада или бесплатная монада?
Vladislav
Doge
Как пример:
https://tpolecat.github.io/doobie/
Вот эта неплохая либа внутри сделана на фри монадах целиком. Точно так же и с fs2 примерно.
Vasily
Roman
Doge
Doge
Free бывают не только монады, но и другие обьекты около категорийные.
Т.е. можно почитать о free applicative, как пример:
https://www.youtube.com/watch?v=H28QqxO7Ihc
Roman
Время учить теоркат
Vasily
Я вот все собираюсь, но опасаюсь за кукушку
Roman
Ayrat
Vasily
Ну нахуй
Doge
Vasily
Ща читаю код на скале из 8 строчек, у меня взрывается мозг
Doge
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
так много вопросов, так мало ответов
Roman
еще один профит интерпретатора: можно встраивать легко воркфлоу в воркфлоу.
https://github.com/atsapura/CardManagement/commit/3e208305124374f773f580f615a5f1a0c12f78cd