~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 0420B7A2B3D4E3F0BAD08A2AFEE7DE70__1712909700 ✰
Заголовок документа оригинал.:
✰ PureScript - Wikipedia ✰
Заголовок документа перевод.:
✰ Чистый скрипт — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/PureScript ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/04/70/0420b7a2b3d4e3f0bad08a2afee7de70.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/04/70/0420b7a2b3d4e3f0bad08a2afee7de70__translat.html ✰
Дата и время сохранения документа:
✰ 16.06.2024 09:59:34 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 12 April 2024, at 11:15 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Чистый скрипт — Википедия Jump to content

Чистый скрипт

Из Википедии, бесплатной энциклопедии
Чистый скрипт
Парадигма Функциональный
Разработано Фил Фриман
Впервые появился 2013
Стабильная версия
0.15.15  Отредактируйте это в Викиданных/ 7 февраля 2024 г .; 4 месяца назад ( 7 февраля 2024 г. )
Дисциплина набора текста Предполагаемый , статичный , сильный
Лицензия БСД [1]
Расширения имен файлов .чистый
Веб-сайт www .чистый скрипт .org Отредактируйте это в Викиданных
Под влиянием
Хаскелл , JavaScript

PureScript — это типизированный строго чисто функциональный язык программирования , который трансформируется в JavaScript . [2] С++11 , [3] Эрланг , [4] и иди . [5] Его можно использовать для разработки веб-приложений, серверных приложений, а также настольных приложений с использованием Electron или компиляторов C++11 и Go с подходящими библиотеками. Его синтаксис во многом аналогичен синтаксису Haskell . Кроме того, он вводит полиморфизм строк и расширяемые записи . [6] Кроме того, в отличие от Haskell, язык PureScript имеет строгую стратегию оценки . [7] хотя существуют несоответствующие серверные части, которые реализуют стратегию ленивой оценки . [8]

История [ править ]

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

С тех пор он был подхвачен сообществом и разрабатывается на GitHub . Дополнительные основные инструменты, разработанные сообществом, включают специальный инструмент сборки «Pulp», [10] каталог документации «Погоня», [11] и менеджер пакетов "Спаго" [12]

Особенности [ править ]

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

Транспиляторы PureScript стараются создавать читаемый код, где это возможно. Благодаря простому интерфейсу FFI он также позволяет повторно использовать существующий JavaScript. [14] /С++11 [15] [16] /Идти [17] код.

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

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

Примеры [ править ]

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

модуль   Main   , где 

 импортируется   Effect.Console   (  log  ) 

 main   =   log   "Hello World!" 

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

модуль   Main   где 

 import   Prelude 

 import   Effect   (  Effect  ) 
 import   Effect.Console   (  log  ) 

 main   ::   эффекта   Единица 
 main   =   log   "Hello World!" 

См. также [ править ]

Ссылки [ править ]

  1. ^ «чистый скрипт/чистый скрипт» . Гитхаб . 3 июня 2022 г.
  2. ^ «Транспилятор PureScript в JavaScript» . Гитхаб . Проверено 22 января 2023 г.
  3. ^ «Транспилятор PureScript в C++11» . Гитхаб . Проверено 22 января 2023 г.
  4. ^ purerl — серверная часть PureScript Erlang , purerl, 04 сентября 2023 г. , получено 5 сентября 2023 г.
  5. ^ «Транспилятор PureScript to Go» . Гитхаб . Проверено 22 января 2023 г.
  6. ^ «Чистый скрипт» . purescript.org . Проверено 14 марта 2019 г.
  7. ^ purescript/documentation , PureScript, 19 февраля 2023 г. , получено 20 февраля 2023 г.
  8. ^ Альтернативные серверные части , PureScript, 19 февраля 2023 г. , получено 20 февраля 2023 г.
  9. ^ «Читать PureScript на примерах | Leanpub» . leanpub.com . Проверено 14 марта 2019 г.
  10. ^ Инструмент сборки для проектов PureScript , PureScript Contrib, 08 марта 2019 г. , получено 14 марта 2019 г.
  11. ^ "Преследование" . сайт преследования.purescript.org . Проверено 14 марта 2019 г.
  12. ^ 🍝 Менеджер пакетов и инструмент сборки PureScript на базе Dhall и наборы пакетов: spacchetti/spago , spacchetti, 14 марта 2019 г. , получено 14 марта 2019 г.
  13. ^ Документация по языку PureScript, компилятору и инструментам: purescript/documentation , PureScript, 14 марта 2019 г. , получено 14 марта 2019 г.
  14. ^ «Интерфейс внешней функции» . Чистый скрипт. 15 июля 2015 г. Проверено 22 января 2023 г.
  15. ^ «ФФИ» . Чистый скрипт. 26 июля 2019 г. Проверено 22 января 2023 г.
  16. ^ Реализации внешнего экспорта C++ для стандартной библиотеки , PureScript, 26 июля 2019 г. , получено 22 января 2023 г.
  17. ^ «Перейдите к зарубежным экспортным реализациям стандартной библиотеки» . Чистый скрипт. 13 декабря 2020 г. Проверено 22 января 2023 г.
  18. ^ Purs ide: Поддержка редактора и инструментов для языка программирования PureScript , 21 апреля 2019 г. , получено 21 апреля 2019 г.
  19. ^ Реализация поиска по типу для PureScript , 27 октября 2016 г.
  20. ^ Матиас Палл Гиссуарсон (27 сентября 2018 г.), «Предложение подходящих отверстий для типизированных отверстий (отчет об опыте)» , Уведомления ACM SIGPLAN , 53 (7): 179–185, doi : 10.1145/3299711.3242760 , S2CID   218480974

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 0420B7A2B3D4E3F0BAD08A2AFEE7DE70__1712909700
URL1:https://en.wikipedia.org/wiki/PureScript
Заголовок, (Title) документа по адресу, URL1:
PureScript - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)