Aleksei (astynax)
Я могу ведь тупо словарики методов проассоциировать через сумму тэгов чисто на value level :)
Vladislav
Так, а зачем тут синглтоны-то и класс и вообще всё вот это f' :: Tag -> Bar f' = \case A -> f @A B -> f @B C -> f @C
Alexander
вот да, так проще всего
Aleksei (astynax)
Но тут-то всё прямолинейно должно быть
Vladislav
в общем-то синглтоны и дают эту генережку готовую
Vladislav
просто в четыре раза сложнее, чем надо, потому что они не только это умеют
Vladislav
заметь, что с синглтонами RHS всегда одна, f @tag, а здесь разная
Vladislav
потому что с синглтонами ты полноценно вынес tag на тайп-левел
Vladislav
а тут просто поматчился
Aleksei (astynax)
Генерёжкой то всё равно можно получить разные теги в клозах.
Vladislav
Ну это да
Vladislav
Я еще не совсем понимаю, зачем делать вот как сделано
Vladislav
если можно вместо классов сразу писать функцию
Aleksei (astynax)
Хочется иметь длинный enum. И для каждого случая отдельную реализацию набора методов. Вот я и посмотрел в сторону класса+тэга - чтобы инстансы отдельно писать. Как обычными словариками сделать - очевидно и так :)
Vladislav
в каком смысле отдельно, всё равно в одном модуле будет, если без сирот
Aleksei (astynax)
без сирот не сильно "отдельно" будет, это правда
Aleksei (astynax)
data Tag = A | B | ... data Protocol = Protocol { doF :: Foo , doBar :: Bar } route :: Tag -> Protocol route = \case A -> protocolForA B -> protocolForB ... protocolForA :: Protocol protocolForB :: Protocol
Aleksei (astynax)
тут то можно разнести по модулям
Vladislav
Тогда зачем это вообще в классе делать ¯\_(ツ)_/¯
Vladislav
а, ну может еще нет
Vladislav
наверняка примут
Aleksei (astynax)
Тогда зачем это вообще в классе делать ¯\_(ツ)_/¯
Я и говорю - была идейка. Пока думал над ней, понял, что не слишком хорошая :) Зато знаю теперь хоть, что в принципе так можно :)
Vladislav
А, понял.
Vladislav
В общем-то определять, нужен класс или нет, надо по принципу, нужна ли функция из типов в тёрмы
Vladislav
В данном случае можно всю систему на тёрмах сделать, так что классы не нужны по условию задачи
A64m
кстати, я вчера тут говорил что грин нельзя раздельно компилировать, но вот гринтеховец пишет: > Regarding the defunctionalization, it can be done per module basis, i.e. eval and apply could be generated for each compilation unit (т.е. при разработке-то можно будет компилировать побыстрее и только для релиза пострадать)
Зигохистоморфный
коменты веселят https://habr.com/company/bitrix/blog/417397/
Leonid 🦇
нельзя так писать статьи. я отказываюсь это читать
Vladislav
статья, зачем ты существуешь
Vladislav
я тоже не смог прочтиать
A64m
для статей, которым лучше бы не существовать как раз и есть хабр, которому лучше бы не существовать, там что можно не читать статьи не по одной а сразу все
Aliester
кольцо нечитанных статтей
Alexander
там рейтинг -15
Aleksei (astynax)
pampers-lang.edu
Alexander
т.е. даже для хабра статья не очень
Aliester
На самом деле, по моему мнению, чтобы войти в этот лагерь и понять его ценности, нужно ооочень сильно напрячь мозги — ибо математики будет море и еще больше неожиданных, но прекрасных концепций.
Aliester
о хаскеле
Leonid 🦇
Я вообще не могу на хабре ничего читать. Даже если вдруг хорошая статья будет (маловероятно), её будет невозможно читать. Там вёрстка какая-то странная.
Leonid 🦇
вот если сменить цвет текста на хабре с #222 на black то уже лучше
Aleksei (astynax)
Продиагоналил, не самая плохая для хабра статья. Не хорошая, конечно же, но и не полный шлак
Aleksei (astynax)
"Поверхностные знания обо всём" как обычно
Aleksei (astynax)
Aleksei (astynax)
С учётом этого ^ даже странно, что не настолько плохо :)
Aleksei (astynax)
Программировать контроллеры на JS хоть не предлагают :)
Artem
Постоянно читаю хабр и мне нравится. Эта статья, конечно, не очень, но не нужно обобщать
Aleksei (astynax)
Это не обобщение, это печальный опыт
Andrey
Говорят, некие Вершиловы с Граниными тоже на хабр статейки писали. Получается, они тоже “не очень”.
Leonid 🦇
врут поди
Dmitry
Пытались уровень поднять
Dmitry
Не получилось
Ilya
В устаканенной предметной области (серверы, библиотеки) лучше подойдет номинальная типизация (С++, Java, C#...), где-то лучше будет со структурной типизацией (Golang, Haskell...), а в скриптинге веба или задачах машинного обучения придет настоящее счастье с утиной (python, php, javascript...)
Ilya
Первый раз вижу Go и Haskell рядом
A64m
но в хаскеле же номинальная типизация
Ilya
да? значит это говорит об уровне авторов статьи
Vladislav
Ну в Хаскеле генерики хотя б есть
Alexander
Первый раз вижу Go и Haskell рядом
Меня тоже это удивило. И не только. Статья так себешная, еще и не очень грамотный русский. Но ее я хотя бы прочитал, в отличие от всяких "вышла новая версия" и "опять все запретили, ироды", и подобная мутотень.
Leonid 🦇
ироды выпустили новую версию
Alexander
Ироды выпустили новую версию поста про новую версию тулзы
Евгений
Ироды запретили выпускать новую версию тулзы
A64m
зачем вы их читаете-то? лучше какой-нибудь пейпер прочитайте за то же время
Ilya
К пейперу коммент оставить нельзя
Alexander
Пейпер читать дольше, даже если он пкороче в 10 раз 😞
Ilya
Хотя я видел пейперы с темой "критика вон того пейпера", это наверное можно считать комментами
Alexander
Papers "Considered harmful" considered harmful?
A64m
Пейпер читать дольше, даже если он пкороче в 10 раз 😞
можно прочитать только вводную часть, заключение, обзор других работ на родственные темы и что осталось для дальнейшей работы. Это позволит составить достаточно представления о том, что делается и как идут дела.
Евгений
Есть, кстати, замечательный чат, где можно обсудить флуд на хабре @haskell_blah
A64m
этот тоже вполне подходит
Евгений
Ну этот чат для всего подходит, конечно
Dmitry
https://blizzard.cs.uwaterloo.ca/keshav/home/Papers/data/07/paper-reading.pdf
Dmitry
Статья о том, как читать статьи
Ilya
Инструкция для читателя научных статей http://nuclphys.sinp.msu.ru/jokes/j08.htm
eahqzsr
Да, на coursera один из самых популярнык курсов "как учиться"
A64m
но если не уметь учиться, как тогда научиться учиться?
Aleksei (astynax)
Этот курс очень часто забрасывают. Наверное поэтому :)
М
коменты веселят https://habr.com/company/bitrix/blog/417397/
хорошая статья. пойду учить питон