Рубрики
Без рубрики

DaseMl & Rescrict за 5 минут

Что это за язык? Это функциональный язык, который собирается в JavaScript (или … Tagged с JavaScript, React, Web, Node.

Что это за язык?

Это функциональный язык, который собирается в JavaScript (или OCAML). Мы широко используем его в avo.app Анкет

Что такое ML в Daseml?

В настоящее время ML обычно означает машинное обучение, но в старые времена был язык программирования, называемый «мета -языком», который является предком Daseml, или Meta Language.

Зачем переименовать?

Причинамл совместим с JS и OCAML, но в последнее время он в основном использовался в экосистеме JS. Rescrict берет связанные с JS вещи из разума и перестает ограничивать поддержку OCAML.

Что хорошие?

Неизменность

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

Трубопровод и карри

Rescrict – это функциональный язык без методов на объектах, но вы можете вызывать и цепные функции знакомым образом с трубопроводами и карри, как myList-> list.length или myarray-> array.map (item => item * 2)

Система типа звука и вывод типа

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

Нет требований к папкам и нет импорта

Это случай на многих языках, но, побуждая Java, я действительно ценю эту функцию. И разработчики JavaScript любят невозможность импорта!

Полная поддержка алгебраических типов данных

Очень легко описать любой домен с помощью пользовательских типов Вы можете создавать псевдонимы типа, такие как Тип или сложные типы, такие как

type event = {
  id: eventId,
  name: string,
  uniqueName: option,
  description: string,
  properties: list,
  types: list
}

Основная конструкция на языке – это исчерпывающий переключатель, оптимизированный для сопоставления схем

Это сопровождается уполномоченным видом Enum, называемым вариантами. Существуют варианты вариантов с набором уток и без него. Лучше увидеть это в действии

Простой синтаксис

Можно начать писать код только после нескольких часов обучения, если вы уже знаете другой язык программирования.

Относительно безопасный рефакторинг

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

Что не так хороши?

Простой синтаксис означает, что это словес

Не так много синтаксического сахара, например, для развертывания дополнительной константы, которую вам придется написать maybesomething-> option.map (что-то-> что-то-> выполнение) вместо MayBesomThing? .PerformoPeration () на некоторых других языках.

Вы должны определять функции перед их использованием

Да, как в старом старом С.

У вас все еще могут быть ошибки, связанные с типом

Наличие мощного компилятора, который ловит 99% ошибок типа, может быть слишком расслабляющим, и становится легче пропустить эту случайную ошибку, которая проскальзывает через проверки компилятора. 😉

Бонус

Мы поддерживаем руководство по стилю общедоступного кода для Причинамл , взносы очень приветствуются!

Оригинал: “https://dev.to/tpom6oh/reasonml-rescript-in-5-minutes-58l6”