Misha
а также буррито
Misha
Вот только до кода пока руки ни разу не доходили 8(
а зачем изучать язык, и не писать на нем
Misha
в смысле даже залепухи
Aragaer
ну я пытался что-то, писать, но дальше крошечного кусочка кода дело не ушло
Aλeχ
ребятцы
Aλeχ
посвятите кто-нибудь меня в дзэн NixOS
Alexander
интересно а почему про nixos всегда на Haskell ресурсах спрашивают, а не перловых..
Donat
лично я про nix узнал из бананов и линз
Евгений
интересно а почему про nixos всегда на Haskell ресурсах спрашивают, а не перловых..
Большинство моих знакомых хаскелистов успело подрочить на никс
Alexander
там большая часть всего на перле
Alexander
и плюсах
Alexander
в менеджере
Влод
интересно. а вообще связь с хаскелем есть? я то всегда его как-то с хаскелем его ассоциировал, хотя нужды в нём и других дистрибутивах никогда не было
Влод
ну то есть там есть актуальные скомпиленные пакеты с хакеджа?
Влод
и их можно ставить так чтобы разные версии жили рядом и не конфликтовали?
Влод
чувство что я хуйню сказал
Alexander
но это не правда
Alexander
хотя не так и много
Anatolii
интересно а почему про nixos всегда на Haskell ресурсах спрашивают, а не перловых..
Ну на сайте nixos написано - pure functional Linux distribution. Вот с хаскелем ассоциации и возникают
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
Ну то есть это норм воткнуть им туда конверсию?
в общем случае нет, если ByteString не содержит валидный utf-8
Misha
но вообще да
Misha
"на практике"
Aragaer
конструкция-то простецкая, но куда и зачем - так и не осилил
Dmitry
что бы типизировать эффекты же.
Aragaer
вот ... не, я не понял, что такое "типизировать" и какие такие "эффекты". Еще пока
Aragaer
мне по-простому - функции, байтики, маллок
Dmitry
ну вот тем, кто делал хаскель, захотелось чистый язык. классификация языков есть, например, у Аппеля и она вообще возникает каждый раз, когда дело доходит до разработки языков
Dmitry
и если у тебя readIntFromFile :: FIlePath -> IO Int
Dmitry
то с этим Int , который внутри IO надо как-то жить
Мерль
конструкция-то простецкая, но куда и зачем - так и не осилил
Не надо осиливать монады Просто пиши грёбаный код Programming, Motherfucker Do you speak it?
Dmitry
у Аппеля, например, тоже самое делается без монад, но в итоге получаются всё равно практически монады
Aragaer
вобщем в том (единственном) случае, когда я попытался что-то написать на хаскелле, я дошел до того, что мне понадобились монады, за один вечер не сообразил как их прицепить, а потом (уже несколько лет) к тому единственному случаю не возвращался
Мерль
Не надо осиливать монады Просто пиши грёбаный код Programming, Motherfucker Do you speak it?
Как ответил Дэвид Мермин на вопрос "как же всё таки работает квантовая механика?": "Заткнись и считай"
Dmitry
тащем-та, пописав в CPS хотя бы на Си, непонятно, какие проблемы с монадами самими по себе
Dmitry
монада это ... тадам! всего лишь тайпкласс.
Misha
ну вот да
Dmitry
с интерфейсами ж в Java нет проблем, а тут-то что вы к ним прицепились?
Evgeniy
мне по-простому - функции, байтики, маллок
проблема с этим всем в том, что много всякой теории и кучи разных описаний с разных сторон и наиболее простой способ разобраться это просто не вникать особо а попробовать использовать
Dmitry
зато я помню, как мне надо было в Си сказать компилятору, что у меня вычисление без побочных эффектов и заставить его в компайл-тайме свитч вычислить
Dmitry
шо вы думаете - так и не получилось
Misha
далеко не самая сложная абстракция, но почему-то у людей какое-то благоговение при слове монада
Dmitry
потому что откуда знать в тупом си, что функция без побочных эффектов
Dmitry
ну вот да. с одной строны, взможно из-за названия - отдает то ли Гегелем, то ли Хайдеггером
Dmitry
вот люди и боятся. в F# их вроде переименовали во что-то. но не помогло
Влод
проблема с этим всем в том, что много всякой теории и кучи разных описаний с разных сторон и наиболее простой способ разобраться это просто не вникать особо а попробовать использовать
ну беда в том что на этом уровне и остаёшься и практика не двигает теорию. хотя этого достаточно.вроде ещё не слышал чтобы теоркат кому-нибудь помогал с работой на хаскеле
Влод
алсо норм было бы если бы io поделили на работу с сетью / работу с бд и тд. была бы монада ui где нельзя делать треды, ходить в бд и тд. наверное это не просто
Aragaer
потому что откуда знать в тупом си, что функция без побочных эффектов
в гцц вроде есть в экстеншнах атрибуты типа pure и const. Но реально достаточно было чтоб заинлайнил и все.
Dmitry
1) не всегда работает
Dmitry
2) это был не gcc
Dmitry
ну и все эти pure совершенно точно работают не всегда, т.е там какие-то эвристики и гарантировать ничего нельзя.
Евгений
проблема с этим всем в том, что много всякой теории и кучи разных описаний с разных сторон и наиболее простой способ разобраться это просто не вникать особо а попробовать использовать
Эта "теория" просто идеалистический хайп. Переформулируем очевидые высказывания одним миллионом способов. Вся суть современной higher mathematics. Просто гранды дают не за красивые результаты, а на что-то шокирующее ум обывателя. Вот и получается аналог постмодернистского искусства аля "насрал на малевича" в науке
Andrey
>дошел до того, что мне понадобились монады монады имхо не могут понадобиться. Ну, кроме IO, но ее можно воспринимать как паттерн и не вдаваться в детали. А все остальное можно сделать и без монад. Точно так же, как на плюсах можно писать без классов а на Си без функций.
Dmitry
это надо большую силу воли иметь. и долго это не продлится
Andrey
ну я про вообще принципиальную возможность, что это не является неким необходимым и обязательным, а в конце концов приходят к этим абстракциям и используют их для облегчения жизни.
Dmitry
ну, как известно для того, что бы делать вообще всё, достаточно одной единственной инструкции, например SUBLEQ