Misha
Misha
а также буррито
Aragaer
Misha
Misha
в смысле даже залепухи
Aragaer
ну я пытался что-то, писать, но дальше крошечного кусочка кода дело не ушло
Aλeχ
ребятцы
Aλeχ
посвятите кто-нибудь меня в дзэн NixOS
Alexander
интересно а почему про nixos всегда на Haskell ресурсах спрашивают, а не перловых..
Donat
лично я про nix узнал из бананов и линз
Евгений
Влод
Alexander
там большая часть всего на перле
Alexander
и плюсах
Alexander
в менеджере
Влод
интересно. а вообще связь с хаскелем есть? я то всегда его как-то с хаскелем его ассоциировал, хотя нужды в нём и других дистрибутивах никогда не было
Vladislav
Влод
ну то есть там есть актуальные скомпиленные пакеты с хакеджа?
Влод
и их можно ставить так чтобы разные версии жили рядом и не конфликтовали?
Влод
чувство что я хуйню сказал
Alexander
но это не правда
Alexander
хотя не так и много
Dmitry
Коллеги, а "бананы и линзы" раз в месяц выходят? Просто у них последний подкаст от апреля, вот и возник вопрос.
Dmitry
выходят, как получится
Dmitry
Аааа
Boris
Boris
У меня тут трабл. Пытаюсь вытащить md5 из json при помощи aeson. Поставил puremd5. Там md5digest имплементирует serialize
Boris
Но он не может text и bytestring связать (
Дима
Еее фотографии монитора
Dmitry
что значит "связать text и bytestring" ?
Dmitry
это два разных типа
Dmitry
можно проблему как-то переформулировать в стиле: здесь приходит байтстринг, а мне надо запихать его в текст
Dmitry
или наоборот
Dmitry
выяснится, что надо просто воткнуть функцию конверсии
Boris
Он же вроде должен при overloadedstrings это делать автоматом?
Anatolii
Нет
Anatolii
Overloaded strings только на строковые литералы работает
Anatolii
Хотя я не совсем прав
Dmitry
прав
Boris
Ну то есть это норм воткнуть им туда конверсию?
Dmitry
ну по приведенной фотке не вполне очевидно что где не сходится, но да - добавить конверсию
Misha
но вообще да
Misha
"на практике"
Нурлан
Aragaer
конструкция-то простецкая, но куда и зачем - так и не осилил
Dmitry
что бы типизировать эффекты же.
Aragaer
вот ... не, я не понял, что такое "типизировать" и какие такие "эффекты". Еще пока
Aragaer
мне по-простому - функции, байтики, маллок
Dmitry
ну вот тем, кто делал хаскель, захотелось чистый язык. классификация языков есть, например, у Аппеля и она вообще возникает каждый раз, когда дело доходит до разработки языков
Dmitry
и если у тебя
readIntFromFile :: FIlePath -> IO Int
Dmitry
то с этим
Int
, который внутри
IO
надо как-то жить
Dmitry
у Аппеля, например, тоже самое делается без монад, но в итоге получаются всё равно практически монады
Aragaer
вобщем в том (единственном) случае, когда я попытался что-то написать на хаскелле, я дошел до того, что мне понадобились монады, за один вечер не сообразил как их прицепить, а потом (уже несколько лет) к тому единственному случаю не возвращался
Dmitry
тащем-та, пописав в CPS хотя бы на Си, непонятно, какие проблемы с монадами самими по себе
Dmitry
монада это ... тадам! всего лишь тайпкласс.
Misha
ну вот да
Dmitry
с интерфейсами ж в Java нет проблем, а тут-то что вы к ним прицепились?
Evgeniy
мне по-простому - функции, байтики, маллок
проблема с этим всем в том, что много всякой теории и кучи разных описаний с разных сторон и наиболее простой способ разобраться это просто не вникать особо а попробовать использовать
Dmitry
зато я помню, как мне надо было в Си сказать компилятору, что у меня вычисление без побочных эффектов и заставить его в компайл-тайме свитч вычислить
Dmitry
шо вы думаете - так и не получилось
Misha
далеко не самая сложная абстракция, но почему-то у людей какое-то благоговение при слове монада
Dmitry
потому что откуда знать в тупом си, что функция без побочных эффектов
Dmitry
ну вот да. с одной строны, взможно из-за названия - отдает то ли Гегелем, то ли Хайдеггером
Dmitry
вот люди и боятся. в F# их вроде переименовали во что-то. но не помогло
Влод
Влод
алсо норм было бы если бы io поделили на работу с сетью / работу с бд и тд. была бы монада ui где нельзя делать треды, ходить в бд и тд. наверное это не просто
Evgeniy
Dmitry
1) не всегда работает
Dmitry
2) это был не gcc
Dmitry
ну и все эти pure совершенно точно работают не всегда, т.е там какие-то эвристики и гарантировать ничего нельзя.
Andrey
>дошел до того, что мне понадобились монады
монады имхо не могут понадобиться. Ну, кроме IO, но ее можно воспринимать как паттерн и не вдаваться в детали. А все остальное можно сделать и без монад. Точно так же, как на плюсах можно писать без классов а на Си без функций.
Dmitry
это надо большую силу воли иметь. и долго это не продлится
Andrey
ну я про вообще принципиальную возможность, что это не является неким необходимым и обязательным, а в конце концов приходят к этим абстракциям и используют их для облегчения жизни.
Dmitry
ну, как известно для того, что бы делать вообще всё, достаточно одной единственной инструкции, например SUBLEQ