PureScript

редактировать
PureScript
PureScript Logo.png
Paradigm Функциональный
Разработал Фил Фриман
Впервые появился2013
Стабильная версия 0.13.8 / 23 мая 2020 г.; 4 месяца назад (2020-05-23)
Дисциплина ввода Предполагаемая, статическая, сильная
Лицензия BSD
Расширения имен файлов .purs
Веб-сайтwww.purescript.org
Под влиянием
Haskell, JavaScript

PureScript является строго типизированным, чисто функциональный язык программирования, который компилируется в JavaScript. Его можно использовать для разработки веб-приложений, серверных приложений, а также настольных приложений с использованием Electron. Его синтаксис в основном сопоставим с синтаксисом Haskell. Кроме того, он вводит полиморфизм строк и расширяемые записи. Кроме того, в отличие от Haskell, PureScript придерживается строгой стратегии оценки .

Содержание
  • 1 История
  • 2 Возможности
  • 3 Примеры
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки
История

PureScript был первоначально разработан Филом Фриманом в 2013 году. Он начал работать над PureScript как различные попытки скомпилировать Haskell в JavaScript при сохранении его семантики (например, с использованием Fay, Haste или GHCJS) не сработал к его удовлетворению.

С тех пор он был подхвачен сообществом и разработан на GitHub. Дополнительные базовые инструменты, разработанные сообществом, включают специальный инструмент сборки «Pulp», каталог документации «Pursuit» и менеджер пакетов «Spago»

Функции

Возможности PureScript строгая оценка, постоянные структуры данных и вывод типа. Система типов PureScript имеет много общих функций с аналогичными функциональными языками, такими как Haskell : алгебраические типы данных и сопоставление с образцом, типы более высокого порядка, классы типов и функциональные зависимости и полиморфизм более высокого ранга. Система типов PureScript добавляет поддержку полиморфизма строк и расширяемых записей. Однако PureScript не поддерживает некоторые из более продвинутых функций Haskell, такие как семейства типов GADT и .

Компилятор PureScript пытается создать читаемый код JavaScript, где это возможно. Благодаря простому интерфейсу FFI он также позволяет повторно использовать существующий код JavaScript.

PureScript поддерживает инкрементную компиляцию, а дистрибутив компилятора включает поддержку создания плагинов для итеративного развитие. Плагины редактора существуют для многих популярных текстовых редакторов, в том числе Emacs, Sublime Text и Visual Studio Code.

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

Примеры

Вот минимальная программа "Hello world" в PureScript:

1 модуль Main, где 2 3 импортируют Effect.Console (log) 4 5 main = log "Hello World!"

Здесь тип программы определяется и проверяется компилятором PureScript. Более подробная версия той же программы может включать явные аннотации типов:

1 модуль Main, где 2 3 import Prelude 4 5 import Effect (Эффект) 6 import Effect.Console (log) 7 8 main :: Effect Unit 9 main = журнал "Hello World!"
См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
  • Elm : предметно-ориентированный язык программирования для декларативного создания графических пользовательских интерфейсов на основе веб-браузера
  • Причина : расширение синтаксиса и набор инструментов для OCaml, который также может быть преобразован в JavaScript
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-02 10:59:48
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте