Size: a a a

Elm Lang сообщество разработчиков

2020 October 26

K

Kir in Elm Lang сообщество разработчиков
Mikhail Bortnyk
господа, имею спросить: на самом ли деле вам в Elm мешает отсутствие тайп-классов? как часто встречались задачи, в которых приходилось изворачиваться именно из-за того, что тайп классов нет?
Методы update/view у модели, по-хорошему, должен быть методом тайпкласса. В этом случае удастся убрать весь шум из использования tea-combine и выводить update/view автоматически, если модель построена из сумм, произведений и других моделей.

А если ещё HKT добавить, то можно сделать type Fix f = Fix (f (Fix f)), сделать для него инстанс и выкинуть из Recursive примера всю логику update/view, кроме вертикального склеивания заголовка с поддеревом.

Вместо того, чтобы не делать фичи, потому что люди испугаются и убегут (с), можно их сделать, но рекомендовать их использовать только в случае если человек их понимает.
источник

MB

Mikhail Bortnyk in Elm Lang сообщество разработчиков
> выводить update/view автоматически, если модель построена из сумм, произведений и других моделей
это звучит вкусно, да
источник

K

Kir in Elm Lang сообщество разработчиков
А так же делать map, foldr и прочее над любыми Functor/Foldable-контейнерами
источник

MB

Mikhail Bortnyk in Elm Lang сообщество разработчиков
я на самом деле спрашиваю не столько в разрезе Elm, сколько для определения родмапа одного внутреннего проекта, который очень сильно Elm-like, но используется на бекэнде для описания бизнес-логики
источник

MB

Mikhail Bortnyk in Elm Lang сообщество разработчиков
имплементации похожи до смешения, поэтому и проблемы заимствованы те же
источник

K

Kir in Elm Lang сообщество разработчиков
Вот что я скажу: тайпклассы это круто. Я уже и не помню, как я без них жил
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Kir
Методы update/view у модели, по-хорошему, должен быть методом тайпкласса. В этом случае удастся убрать весь шум из использования tea-combine и выводить update/view автоматически, если модель построена из сумм, произведений и других моделей.

А если ещё HKT добавить, то можно сделать type Fix f = Fix (f (Fix f)), сделать для него инстанс и выкинуть из Recursive примера всю логику update/view, кроме вертикального склеивания заголовка с поддеревом.

Вместо того, чтобы не делать фичи, потому что люди испугаются и убегут (с), можно их сделать, но рекомендовать их использовать только в случае если человек их понимает.
Ну тут только Моноид бы пригодился
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Меня лично больше всякие приземлённые штуки напрягают вроде невозможности сделать мапку с кастомными ключами
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Прям дико раздражает
источник

K

Kir in Elm Lang сообщество разработчиков
s/только/не только/
источник

K

Kir in Elm Lang сообщество разработчиков
Да, не хватает класс Ord
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Аппликатив нормальный, фолтаблы с траверсаблами
источник

K

Kir in Elm Lang сообщество разработчиков
Дадада
источник

K

Kir in Elm Lang сообщество разработчиков
Всё вот это. Alternative ещё иногда
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Это довесок к аппликативу :)
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Его наличие подразумевается
источник

K

Kir in Elm Lang сообщество разработчиков
А я всё время пытаюсь сделать import Control.Alternative
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Я уж молчу, что в хаскеле тайпклассы ещё и с дерайвингом идут. Дерайвить маршаллинг — бесценно
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Это только мазохистам нравится писать билдеры JSON для каждого типа
источник

K

Kir in Elm Lang сообщество разработчиков
derive stock Generic
derive anyclass ToJSON
источник