Как стать автором
Обновить
0

Elm *

Функциональный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Elm – забава или серьёзный инструмент?

Время на прочтение 5 мин
Количество просмотров 5.9K

Привет, Хабр!

Данный обзор познакомит вас с частичкой мира функциональных языков программирования, а именно с Elm, кто-то узнает про этот инструмент, кто-то про то, что фронтенд – это не только HTML, CSS и JS.

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 6

Новости

Сравнение Elm и Reflex

Время на прочтение 16 мин
Количество просмотров 3.8K

Введение


В этой статье мы поговорим о двух принципиально разных подходах к реактивному программированию.


Elm, в отличие от Reflex — это целый язык, а не библиотека, поэтому сравнивать их не очень корректно. Тем не менее, можно показать разницу между подходами, а также рассказать, какие практические трудности могут возникнуть при разработке с использованием каждой из технологий.

Читать дальше →
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 2

MVC без C: Что изменит SwiftUI в архитектуре приложений?

Время на прочтение 4 мин
Количество просмотров 7.9K
MVC был давним стандартом в паттернах проектирования, используемых для написания iOS приложений. Структура iOS приложений, которые создавались ранее, была основана на одном базовом компоненте, который присутствует везде, и называется он — Controller. На WWDC19 был представлен SwiftUI, который не имеет такого компонента.

Проблема с так называемыми massive view-controllers должна быть решена в SwiftUI. Так, необходимо найти новый способ правильной декомпозиции кода. Давайте посмотрим на текущее состояние платформы и подумаем, какие парадигмы мы можем использовать при разработке для iOS13 и более поздних версий.

image
Читать дальше →
Всего голосов 15: ↑12 и ↓3 +9
Комментарии 1

Пример Model-View-Update архитектуры на F#

Время на прочтение 8 мин
Количество просмотров 6.6K

Кому-то не нравился Redux в React из-за его имплементации на JS?


Мне он не нравился корявыми switch-case в reducer'ах, есть языки с более удобным pattern matching, и типы лучше моделирующие события и модель. Например, F#.
Эта статья — разъяснение устройства обмена сообщениями в Elmish.

Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 5

Истории

Боремся со слишком большими Msg в Elm приложениях

Время на прочтение 4 мин
Количество просмотров 1.8K

Согласно Elm Architecture, вся логика приложения сконцентрирована в одном месте. Это довольно простой и удобный подход, но с ростом приложения можно увидеть функцию update длиной 700 строк, Msg с сотней конструкторов и Model, не умещающуюся в экран.


Такой код довольно тяжело изучать и, зачастую, поддерживать. Я бы хотел продемонстрировать очень простой прием, который улучшит уровень абстракций в вашем приложении.

Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 5

Elm. Удобный и неловкий. Http, Task

Время на прочтение 5 мин
Количество просмотров 4.5K

Продолжим говорить о Elm 0.18.


Elm. Удобный и неловкий
Elm. Удобный и неловкий. Композиция
Elm. Удобный и неловкий. Json.Encoder и Json.Decoder


В этой статье рассмотрим вопросы взаимодействия с серверной частью.

Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 0

Elm. Удобный и неловкий. Json.Encoder и Json.Decoder

Время на прочтение 5 мин
Количество просмотров 5K

Продолжим говорить о Elm 0.18.


Elm. Удобный и неловкий
Elm. Удобный и неловкий. Композиция
Elm. Удобный и неловкий. Http, Task


В этой статье рассмотрим вопросы энкодеров/декодеров.


Декодеры/энкодеры используются для:


  1. преобразование ответов от сторонних ресурсов (Http, WebSocket и прочее);
  2. взаимодействия через порты. Подробнее про порты и нативный код расскажу в следующих статьях.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 5

Elm. Удобный и неловкий. Композиция

Время на прочтение 8 мин
Количество просмотров 4.4K

Продолжим говорить о Elm 0.18.


Elm. Удобный и неловкий
Elm. Удобный и неловкий. Json.Encoder и Json.Decoder
Elm. Удобный и неловкий. Http, Task


В этой статье рассмотрим вопросы архитектуры Elm приложения и возможные варианты реализации компонентного подхода разработки.


В качестве задачи рассмотрим реализацию выпадающего окна, которое позволяет зарегистрированному пользователю добавить вопрос. В случае анонимного пользователя предлагает сначала авторизоваться или зарегистрироваться.

Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 3

Elm. Удобный и неловкий

Время на прочтение 3 мин
Количество просмотров 23K

Поговорим о Elm.


Elm — функциональный язык программирования для frontend-разработки. Синтаксис похож на Haskell, но значительно упрощен и специализирован. Исходный код на Elm компилируется в нативный JavaScript. Скомпилированный JavaScript содержит код приложения, которое управляют поддеревом DOM.

Читать дальше →
Всего голосов 18: ↑14 и ↓4 +10
Комментарии 8

Инструменты разработчика на языке Elm

Время на прочтение 7 мин
Количество просмотров 8.1K

С момента публикации статьи Основы разработки на языке Elm (руководство по инструментарию для начинающих) прошло полтора года. За это время в инструментарии для языка разработки веб-интерфейсов Elm произошли многочисленные изменения: появилась более удобная система сборки с возможностью генерации нового проекта; для редактора Atom набор дополнений в некоторых отношениях теперь лучше, чем для популярного тогда среди разработчиков на Elm редактора LightTable; заработал инспектор состояния приложения. Давайте пройдёмся по этому набору на простом примере.


Инструменты разработчика на языке Elm: обложка

Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 11

Паттерн Model-Update-View и зависимые типы

Время на прочтение 13 мин
Количество просмотров 10K


Model-Updater-View — функциональный паттерн, успешно применяемый в языке Elm в основном для разработки пользовательских интерфейсов. Что бы им воспользоваться надо создать тип Model, представляющий полное состояние программы, тип Message, описывающий события внешней среды, на которые программа должна реагировать, меняя свое состояние, функцию updater, которая из старого состояния и сообщения создает новое состояние прораммы и функции view, которая вычисляет по состоянию программы требуемые воздействия на внешнюю среду, которые порождают события типа Message. Паттерн очень удобный, но у него есть маленький недостаток — он не позволяет описать какие события имеют смысл для конкретных состояний программы.

Схожая проблема возникает (и решается) и при использовании ОО-паттерна State.

Язык Elm простой, но очень строгий — он проверяет, что функция updater хоть как-то обрабатывает все возможные сочетания модели-состояние и сообщения-события. По этому приходится писать лишний, пусть и тривиальный — как правило оставляющий модель без изменений, код. Я хочу продемонстрировать, как этого можно избежать в более сложных языках — Idris, Scala, C++ и Haskell.
Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 2

ROS, ELM и черепашка

Время на прочтение 6 мин
Количество просмотров 5.9K
Robotic Operation System позволяет взаимодействовать своим подсистемам по механизмам «подписка на топик» и «вызов сервиса» по своему специальному протоколу. Но есть пакет rosbridge, который позволяет общаться с ROS извне с помощью websocket. Описанный протокол позволяет выполнять основные операции по взаимодействию с другими подсистемами.

ELM — очень простой и элегантный язык, компилирующийся в javascript и отлично подходящий для разработки интерактивных программ.

Я решил совместить приятное с полезным и изучать ROS (по которой сейчас идет курс) и ELM вместе.
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Комментарии 5

Основы разработки на языке Elm (руководство по инструментарию для начинающих)

Время на прочтение 4 мин
Количество просмотров 23K

От автора: вместо этой статьи рекомендую прочитать более актуальную Инструменты разработчика на языке Elm.


Elm это функциональный язык программирования для разработки веб-приложений, работающих в браузере. Elm строгий, статически типизированный. Elm похож на Haskell, однако это лишь поверхностное сходство, ведь Elm изначально заточен для быстрой разработки веб-приложений.


Эта статья представляет из себя шпаргалку для начинающих по основам разработки на языке Elm, а именно, здесь рассматривается организация проекта, инструментарий Elm и среда разработки Light Table.


LightTable с запущенным приложением на Elm

Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 13

Ближайшие события

Вклад авторов