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

Elm *

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

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

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

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

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

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

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

Новости

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

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

Введение


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


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

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

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

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

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

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

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

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

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


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

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

Истории

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

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

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


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

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

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

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

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


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


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

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

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

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

Продолжим говорить о 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.2K

С момента публикации статьи Основы разработки на языке 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 мин
Количество просмотров6K
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

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