Size: a a a

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

2018 November 22

λ

λоλторт in Elm Lang сообщество разработчиков
всё та же императивщина с ООП
источник

(

( in Elm Lang сообщество разработчиков
Ну конечно. Берется джава, берутся нормальные HOFы, все классы делаются финальными, потому что наследование - это бич
источник

(

( in Elm Lang сообщество разработчиков
И получается нормальный полу-джавовый, полу-фп код
источник

(

( in Elm Lang сообщество разработчиков
Опять же, в джаве нельзя написать (::funMapAtoB + ::funMapBtoC)(a), а в котлине можно
источник

(

( in Elm Lang сообщество разработчиков
Ну, так, грубый пример
источник

(

( in Elm Lang сообщество разработчиков
И вообще есть arrow-kt.io
источник

VY

Vasiliy Yorkin in Elm Lang сообщество разработчиков
котлин норм, но это так скучно
источник

(

( in Elm Lang сообщество разработчиков
Vasiliy Yorkin
котлин норм, но это так скучно
Попробуйте программировать на контекстах 🤷‍♀️
источник

VY

Vasiliy Yorkin in Elm Lang сообщество разработчиков
а как это? я может быть и попробовал бы)
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
eahqzsr
Ну я только второй день изучаю elm, но как-то опыт подсказывает мне что урезать возможности языка под предлогом "мне не надо/можно обойтись" - не очень разумно.
У ps есть hedwig, который быстрее эльма (и выгляди так же), но пока причина почему я не переходу на ps, это css
источник

(

( in Elm Lang сообщество разработчиков
Vasiliy Yorkin
а как это? я может быть и попробовал бы)
Ну, вон есть Arrow - там некоторые тайпклассы применяются вот так:
String.eq() // получение инстанса
 .run {
   "1" eqv "2"
}
Так вот смысл в чем - вне скоупа лямбды run вы не можете сравнивать строки через eqv, зато внутри скоупа строки приобретают новую функциональность засчет того, что контекст переносится внутрь инстанса тайпкласса Eq для строк. Представьте теперь, что у вас не String.eq(),  а, например, какой-нибудь AnalyticsContext, внутри которого инкапсулирован инстанс какого-нибудь веб-клиента, который отсылает аналитику куда-нибудь. И вы пишете:
AnalyticsContext().run { // перенос контекста
 Event(id, type).send() /* вне AnalyticsContext тип Event не имеет поведения "send" */
}
И смысл такого подхода в том, что вам не приходится пользоваться, к примеру, DI-ем, потому что вся функциональность поделена на такие вот контексты, которые имеют максимум пару зависимостей. Вооот
источник

(

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

(

( in Elm Lang сообщество разработчиков
Идея эта кстати не моя, до неё люди дошли обсуждениями  в чатике котлина
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Quet Zal
ну ты прочитай историю модулей тех же. какая была мотивация их убрать и тд
А отсутствие тайпклассов как оправдать?
источник

e

eahqzsr in Elm Lang сообщество разработчиков
(
Ну, удачи. Я сам как бы не против ФП, но Хаскель - это академическая игрушка. Как на нем производительный бекенд писать? Асинхронненький? А микросервисы? Под это всё решения есть?
Есть
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
(
Ну, удачи. Я сам как бы не против ФП, но Хаскель - это академическая игрушка. Как на нем производительный бекенд писать? Асинхронненький? А микросервисы? Под это всё решения есть?
А чего тебе в хаскеле не хватает?
источник

(

( in Elm Lang сообщество разработчиков
Ryner :: () -> IO ❄️
А чего тебе в хаскеле не хватает?
Грязи
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
(
Грязи
источник

e

eahqzsr in Elm Lang сообщество разработчиков
Ryner :: () -> IO ❄️
У ps есть hedwig, который быстрее эльма (и выгляди так же), но пока причина почему я не переходу на ps, это css
Есть же либы?
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
eahqzsr
Есть же либы?
Есть purescript-css, конечно
источник