
Aleksey
18.07.2018
08:19:03
Теперь осталось решить, надо ли это мне на самом деле...
Я могу ведь тупо словарики методов проассоциировать через сумму тэгов чисто на value level :)

Index
18.07.2018
08:20:45
Так, а зачем тут синглтоны-то и класс и вообще всё вот это
f' :: Tag -> Bar
f' = \case
A -> f @A
B -> f @B
C -> f @C

Google

Alexander
18.07.2018
08:21:14
вот да, так проще всего

Aleksey
18.07.2018
08:22:01
Но тут-то всё прямолинейно должно быть

Index
18.07.2018
08:22:55
в общем-то синглтоны и дают эту генережку готовую
просто в четыре раза сложнее, чем надо, потому что они не только это умеют
заметь, что с синглтонами RHS всегда одна, f @tag, а здесь разная
потому что с синглтонами ты полноценно вынес tag на тайп-левел
а тут просто поматчился

Aleksey
18.07.2018
08:32:03
Генерёжкой то всё равно можно получить разные теги в клозах.

Index
18.07.2018
08:32:38
Ну это да
Я еще не совсем понимаю, зачем делать вот как сделано
если можно вместо классов сразу писать функцию

Aleksey
18.07.2018
08:34:54
Хочется иметь длинный enum. И для каждого случая отдельную реализацию набора методов. Вот я и посмотрел в сторону класса+тэга - чтобы инстансы отдельно писать. Как обычными словариками сделать - очевидно и так :)

Google

Index
18.07.2018
08:36:16
в каком смысле отдельно, всё равно в одном модуле будет, если без сирот

Aleksey
18.07.2018
08:37:29
без сирот не сильно "отдельно" будет, это правда
data Tag = A | B | ...
data Protocol = Protocol
{ doF :: Foo
, doBar :: Bar
}
route :: Tag -> Protocol
route = \case
A -> protocolForA
B -> protocolForB
...
protocolForA :: Protocol
protocolForB :: Protocol
тут то можно разнести по модулям

Index
18.07.2018
08:39:13
Тогда зачем это вообще в классе делать ¯\_(ツ)_/¯

A64m
18.07.2018
08:39:20

Index
18.07.2018
08:39:31
а, ну может еще нет
наверняка примут

Aleksey
18.07.2018
08:39:59

Index
18.07.2018
08:40:07
А, понял.
В общем-то определять, нужен класс или нет, надо по принципу, нужна ли функция из типов в тёрмы
В данном случае можно всю систему на тёрмах сделать, так что классы не нужны по условию задачи

A64m
18.07.2018
08:51:48
кстати, я вчера тут говорил что грин нельзя раздельно компилировать, но вот гринтеховец пишет:
> Regarding the defunctionalization, it can be done per module basis, i.e. eval and apply could be generated for each compilation unit
(т.е. при разработке-то можно будет компилировать побыстрее и только для релиза пострадать)

Denis
18.07.2018
08:56:16
коменты веселят
https://habr.com/company/bitrix/blog/417397/

Leonid
18.07.2018
08:58:02
нельзя так писать статьи. я отказываюсь это читать

Index
18.07.2018
08:59:38
статья, зачем ты существуешь
я тоже не смог прочтиать

A64m
18.07.2018
09:00:37
для статей, которым лучше бы не существовать как раз и есть хабр, которому лучше бы не существовать, там что можно не читать статьи не по одной а сразу все

Alister
18.07.2018
09:01:30
кольцо нечитанных статтей

Alexander
18.07.2018
09:01:43
там рейтинг -15

Google

Aleksey
18.07.2018
09:01:56
pampers-lang.edu

Alexander
18.07.2018
09:02:07
т.е. даже для хабра статья не очень

Alister
18.07.2018
09:03:01
На самом деле, по моему мнению, чтобы войти в этот лагерь и понять его ценности, нужно ооочень сильно напрячь мозги — ибо математики будет море и еще больше неожиданных, но прекрасных концепций.
о хаскеле

Leonid
18.07.2018
09:03:55
Я вообще не могу на хабре ничего читать. Даже если вдруг хорошая статья будет (маловероятно), её будет невозможно читать. Там вёрстка какая-то странная.
вот если сменить цвет текста на хабре с #222 на black то уже лучше

Aleksey
18.07.2018
09:14:34
Продиагоналил, не самая плохая для хабра статья. Не хорошая, конечно же, но и не полный шлак
"Поверхностные знания обо всём" как обычно
С учётом этого ^ даже странно, что не настолько плохо :)
Программировать контроллеры на JS хоть не предлагают :)

Index
18.07.2018
09:18:18

Artem
18.07.2018
09:18:28
Постоянно читаю хабр и мне нравится. Эта статья, конечно, не очень, но не нужно обобщать

Aleksey
18.07.2018
09:18:53
Это не обобщение, это печальный опыт

Андрей
18.07.2018
09:22:05
Говорят, некие Вершиловы с Граниными тоже на хабр статейки писали. Получается, они тоже “не очень”.

Leonid
18.07.2018
09:26:05
врут поди

Dmitry
18.07.2018
09:50:13
Пытались уровень поднять
Не получилось

Google

Ilya
18.07.2018
09:55:33
В устаканенной предметной области (серверы, библиотеки) лучше подойдет номинальная типизация (С++, Java, C#...), где-то лучше будет со структурной типизацией (Golang, Haskell...), а в скриптинге веба или задачах машинного обучения придет настоящее счастье с утиной (python, php, javascript...)
Первый раз вижу Go и Haskell рядом

A64m
18.07.2018
09:56:31
но в хаскеле же номинальная типизация

Ilya
18.07.2018
09:58:44
да? значит это говорит об уровне авторов статьи

Index
18.07.2018
10:02:48
Ну в Хаскеле генерики хотя б есть

Александр
18.07.2018
10:03:30
Первый раз вижу Go и Haskell рядом
Меня тоже это удивило. И не только.
Статья так себешная, еще и не очень грамотный русский. Но ее я хотя бы прочитал, в отличие от всяких "вышла новая версия" и "опять все запретили, ироды", и подобная мутотень.

Leonid
18.07.2018
10:05:26
ироды выпустили новую версию

Александр
18.07.2018
10:05:55
Ироды выпустили новую версию поста про новую версию тулзы

Евгений
18.07.2018
10:06:29
Ироды запретили выпускать новую версию тулзы

Admin
ERROR: S client not available

A64m
18.07.2018
10:07:29
зачем вы их читаете-то? лучше какой-нибудь пейпер прочитайте за то же время

Ilya
18.07.2018
10:08:07
К пейперу коммент оставить нельзя

Александр
18.07.2018
10:08:14
Пейпер читать дольше, даже если он пкороче в 10 раз ?

Ilya
18.07.2018
10:08:41
Хотя я видел пейперы с темой "критика вон того пейпера", это наверное можно считать комментами

Александр
18.07.2018
10:10:26
Papers "Considered harmful" considered harmful?

A64m
18.07.2018
10:14:40

Евгений
18.07.2018
10:15:00
Есть, кстати, замечательный чат, где можно обсудить флуд на хабре @haskell_blah

A64m
18.07.2018
10:17:30
этот тоже вполне подходит

Евгений
18.07.2018
10:19:44
Ну этот чат для всего подходит, конечно

Dmitry
18.07.2018
10:51:12
https://blizzard.cs.uwaterloo.ca/keshav/home/Papers/data/07/paper-reading.pdf

Google

Dmitry
18.07.2018
10:51:20
Статья о том, как читать статьи

Ilya
18.07.2018
10:52:34
Инструкция для читателя научных статей
http://nuclphys.sinp.msu.ru/jokes/j08.htm

shadowjack
18.07.2018
10:52:54
Да, на coursera один из самых популярнык курсов "как учиться"

A64m
18.07.2018
10:59:59
но если не уметь учиться, как тогда научиться учиться?

Aleksey
18.07.2018
11:00:25
Этот курс очень часто забрасывают. Наверное поэтому :)

Mikhail
18.07.2018
11:08:12
а если серьезно, то сам подумываю о том, чтобы писать на богомерзком свифте, но в функциональной парадигме
под мобайл другого выбора не видно

Дед Пегас
18.07.2018
11:17:51

A64m
18.07.2018
11:20:37
никто не верит что статью читать не нужно - каждый проверяет сам!

Дед Пегас
18.07.2018
11:20:58

Mikhail
18.07.2018
11:24:41
есть три закона на руси...

A64m
18.07.2018
11:24:50
не верить не пойми кому хорошо, когда речь идет о важных вопросах, в обсуждаемой ситуации, даже если зря поверите, все равно ничего не потеряете

Mikhail
18.07.2018
11:28:19
расскажите лучше как мне научиться запускать любой хаскель проект из гитхаба, будь то stack или cabal, что почитать
или может ютуб курс есть хороший

Imants
18.07.2018
11:39:37

Mikhail
18.07.2018
11:40:23
интересно же что потом делать с выдаваемыми ошибками)

shadowjack
18.07.2018
11:41:15

Mikhail
18.07.2018
11:41:25
проекту допустим года три

Imants
18.07.2018
11:41:49
если либа поломанная, то предъявлять ошибки автору

A64m
18.07.2018
11:56:52
ну автор может давно умер/женился.
для того чтоб приверсти старый проект в компилируемое стостояние чаще всего надо править версии зависимостей, ну и какие-то мелкие изменения в хаскеле, хорошая подборка которых есть https://ghc.haskell.org/trac/ghc/wiki/Migration

Евгений
18.07.2018
12:00:24
Надо бы на 8.4 попробовать свой network-ninep замигрировать