Dmitry
Полезно знать
Dmitrii
В общем, если кому не жалко свободного времени - проревьюйте код. Вот задача: https://tproger.ru/problems/nested-segments/ Вот решение: https://hastebin.cuttlerat.ru/qemimezumi.hs
countTrues :: [Bool] -> Int countTrues list = length $ filter (\x -> x == True) list Этот код можно написать чуть короче: countTrues = length . filter id
kosc
Что есть id?
kosc
По типу непонятно.
kosc
a -> a
Aleksei (astynax)
Type Family
Там три сообщения в контексте. Один раз написано type family, воторой раз - TF. Можно уж и догадаться
Dmitrii
a -> a
По этому типу как раз понятно. Ибо существует всего одна разумная возможная функция с таким типом.
Dmitry
filter (\x -> x == True) list надо на filter id
Aleksei (astynax)
Tensor Flow в контексте Хаскеля сильно реже упоминается, чем Type Families. А Tagless Final уж точно не упоминаются - Final Tagless потому что
kosc
Хм, а в решении-то ошибка.
Dmitry
Что проще теоремы доказывать?
Oleg
Что проще теоремы доказывать?
Что для какого-то простого конструктора сигма-типа с эвиденсом неравенства потребуется 5 страниц теорем
kosc
А, опечатка просто была. line и testLine местами поменять.
Dmitry
Что для какого-то простого конструктора сигма-типа с эвиденсом неравенства потребуется 5 страниц теорем
Не буду спорить :) Я имел ввиду, что проще или к length перейти, или инкапсулировать функциями, чем на типах это делать.
Dmitry
Хотя, может, на типах даже ещё проще, я просто не представляю, как
Oleg
Но, естественно, если где-то потребуется доказывать неравенство перед конструктором, в идрисе это доказательство будет раз в 15 короче, чем в симуляции завтипов в хашкеле или шкале
Alexander
ты про wai-middleware-prometheus ? тож просто мидлварь
ну да, но нужен адаптер, который по servant описанию будет правильные хэндлеры генерить
Alexander
чтобы все связанное с приложением в разные статистики складывалось
Alexander
можно руками конечно, то это такое
Kirill
чот как-то я не уверен, что это в общем случае внятно получится
Alexander
почему же, просто добавить Prometheus (name::Symbol)
Kirill
как-то метрики не обязательно строго на пути ложатся
Kirill
а, типа явно в серванте
Alexander
да
Kirill
не видел такого, но мысль, что иногда может быть нужно посчитать ещё и с учётом параметров
Alexander
это кстати возможно, там есть нужные методы, но они не exposed
Alexander
ещё там дефолтные банкеты всегда
Kirill
бакеты может?
Alexander
что вообще бредово, и считается в секундах и делается div
Alexander
ну с телефона
Alexander
он любит заменять словп
Alexander
точнее я так и не понял, но похоже у меня все тупо попадает в 1-2 бакета
Alexander
или я что-то делаю не так, или библиотекой серьезно никто не пользуется..
Kirill
про мидлварь думаю скорей последнее
Alexander
бесит, понавыкладывают на хакадж, а потом неясно, что с этим делать
Alexander
а, кстати, для трейсинга какие решения не завязанные на GCS или Амазон есть хорошие?
Alexander
у нас используется но с привязкой к GCS
kosc
AesonException "Error in $.packages.cassava.constraints.flags['bytestring--lt-0_10_4']: Invalid flag name: \"bytestring--lt-0_10_4\""
kosc
У меня тут stack не пашет.
kosc
Я понимаю, что 1.5.1 не самая свежая версия.
kosc
Но вроде как уже релиз, и далек от первого.
Andrey
upgrade to 1.7.1
kosc
upgrade to 1.7.1
И тип всё заработает?
kosc
Хм, таки заработало.
Ivan
Привет всем - перестал собираться hslogger. Проблема понятна - в пакете containers обновления которые убрали fold. Можно было бы откатиться на предыдущую версию containers но при этом валятся другие зависимости. Фикс hslogger тривиальный. Сообственно вопрос - есть ли варианты применить его максимально быстро - aka патч перед сборкой в cabal?
Cheese
если твой проект собирается через stack, то можно просто указать номер версии или коммит в гите, в котором это уже исправлено
Cheese
если через cabal-new, то, наверно, тоже можно
Ivan
если твой проект собирается через stack, то можно просто указать номер версии или коммит в гите, в котором это уже исправлено
Проблема в том что похоже это никто не исправлял - что конечно само по себе удивительно
Andrey
Проблема в том что похоже это никто не исправлял - что конечно само по себе удивительно
тогда форкни, поправь, сделай PR а локально у себя укажи линк на свой коммит
Ivan
Форк - хорошее предложение - снего и начну
Kirill
но есть http://hackage.haskell.org/package/Cassava
Kirill
Форк - хорошее предложение - снего и начну
см. ссылку на имеющийся форк и пояснения там
Cheese
так, у меня stack собирает hslogger без ошибок. в чём проблема?
Cheese
последнюю версию
Aleksei (astynax)
версии GHC то у вас одинаковые?
Aleksei (astynax)
и может быть разница в extra-deps
Alexander
старый стек не умел читать кабал файлы
Alexander
потому что спеку кабал файлов никто не писал
Alexander
и был момент когда хвр упёрся, что давайте чините стек, а стековцы упёрлись, чтобы хвр починил кабал файл
Alexander
в итоге в новом стеке это поправили
Leonid 🦇
в стеке свой парсер кабалов что-ли? чем им парсер из Cabal не угодил?
Alexander
вот не угодил
Vladislav
Тем, что работает
Alexander
ура!
Евгений
в стеке свой парсер кабалов что-ли? чем им парсер из Cabal не угодил?
Не будет повода ныться о том как кабалисты всё ломают
Kirill
Ну они своё ломают тоже
Kirill
Как с кассавой
Alexander
древние кабалы ее не понимают?
Kirill
Ну оператор новый, ответ хвр вроде был - апгрейдитесь
Kirill
Вроде с лицензиями тоже не всё гладко с обратной совместимостью, с этим SPDX или как там его
A64m
с кассавой разве проблема с оператором была? там просто же опции компиляции стек распарсить не мог
Alexander
не, используешь Херберт оператор - поднимай cabal-version
Alexander
если кабал разрешать залить не бапмнув - то да, баг
Alexander
тоже самое с лицензиями