Gleam (язык программирования)

Язык программирования

Проблеск
Люси, морская звезда-талисман Gleam [1]
ПарадигмаМультипарадигмальный : функциональный , параллельный [2]
РазработаноЛуи Пилфолд
РазработчикЛуи Пилфолд
Впервые появился13 июня 2016 г. ; 8 лет назад ( 2016-06-13 )
Стабильный релиз
1.7.0 [3]  / 4 января 2025 г.
Дисциплина набора текстаТипобезопасный , статический , выведенный [2]
Управление памятьюСобранный мусор
Язык реализацииРжавчина
ОСFreeBSD , Linux , macOS , OpenBSD , Windows [4]
ЛицензияЛицензия Apache 2.0 [5]
Расширения имени файла.блеск
Веб-сайтпроблеск.бег
Под влиянием
[6]

Gleam — это универсальный , параллельный , функциональный язык программирования высокого уровня , который компилируется в исходный код Erlang или JavaScript . [2] [7] [8]

Gleam — это статически типизированный язык, [9] который отличается от самых популярных языков, работающих на виртуальной машине Erlang BEAM , Erlang и Elixir . Gleam имеет собственную типобезопасную реализацию OTP, фреймворка акторов Erlang. [10] Пакеты предоставляются с помощью менеджера пакетов Hex, и доступен индекс для поиска пакетов, написанных для Gleam. [11]

История

Первая пронумерованная версия Gleam была выпущена 15 апреля 2019 года. [12] Компиляция в JavaScript была введена в версии v0.16. [13]

В 2023 году Фонд экосистемы Эрланга профинансировал создание курса по изучению Gleam на обучающей платформе Exercism . [14]

Версия v1.0.0 была выпущена 4 марта 2024 года. [15]

Функции

Gleam включает в себя следующие функции, многие из которых схожи с другими языками функционального программирования: [8]

Пример

Пример «Привет, мир!» :

импортировать gleam/ioпаб фн мейн() { io.println("привет, мир!")}

Gleam поддерживает оптимизацию хвостового вызова : [16]

pub fn factorial(x: Int) -> Int { // Публичная функция вызывает частную хвостовую рекурсивную функцию факториальный_цикл(x, 1)}fn factorial_loop(x: Int, аккумулятор: Int) -> Int { случай х { 1 -> аккумулятор // Последнее, что делает эта функция, — вызывает саму себя _ -> factorial_loop(x - 1, аккумулятор * x) }}

Выполнение

Инструментарий Gleam реализован на языке программирования Rust . [17] Инструментарий представляет собой единый исполняемый файл, содержащий компилятор, инструмент сборки, менеджер пакетов, форматировщик исходного кода и языковой сервер . Также доступен двоичный файл WebAssembly , содержащий компилятор Gleam, что позволяет компилировать код Gleam в веб-браузере.

Ссылки

  1. ^ "Проблемы gleam-lang/gleam - Новый логотип и талисман #2551". GitHub .
  2. ^ abc "Домашняя страница Gleam". 2024.
  3. ^ "Release 1.7.0". 4 января 2025 г. Получено 21 января 2025 г.
  4. ^ «Установка Gleam». 2024.
  5. ^ "Файл лицензии Gleam". GitHub . 5 декабря 2021 г.
  6. Pilfold, Louis (7 февраля 2024 г.). «Gleam: Past, Present, Future!». Fosdem 2024 – через YouTube.
  7. ^ Крилл, Пол (5 марта 2024 г.). «Язык Gleam доступен в первой стабильной версии». InfoWorld . Получено 26 марта 2024 г. .
  8. ^ ab Eastman, David (22 июня 2024 г.). «Введение в Gleam, новый язык функционального программирования». The New Stack . Получено 29 июля 2024 г. .
  9. ^ Де Симоне, Серджио (16 марта 2024 г.). "Erlang-Runtime Statically-Typed Functional Language Gleam Reaches 1.0". InfoQ . Получено 26 марта 2024 г. .
  10. ^ Знакомство с актерами в Gleam - Рауль Шуза. Код BEAM America. 27 марта 2024 г. Получено 6 мая 2024 г. – через YouTube.
  11. ^ "Представляем индекс пакетов Gleam – Gleam". gleam.run . Получено 7 мая 2024 г. .
  12. ^ "Hello, Gleam! – Gleam". gleam.run . Получено 6 мая 2024 г. .
  13. ^ "v0.16 - Gleam компилируется в JavaScript! – Gleam". gleam.run . Получено 7 мая 2024 г. .
  14. ^ Алистер, Вудман (декабрь 2023 г.). «Отчет председателя ежегодного общего собрания Фонда экосистемы Эрланга 2023 г.».
  15. ^ "Gleam версия 1 – Gleam". gleam.run . Получено 7 мая 2024 г. .
  16. ^ "Tail Calls". The Gleam Language Tour . Получено 26 марта 2024 г.
  17. ^ gleam-lang/gleam, Gleam, 6 мая 2024 г. , получено 6 мая 2024 г.
  • Официальный сайт
  • Gleam-lang на GitHub


Взято с "https://en.wikipedia.org/w/index.php?title=Gleam_(язык_программирования)&oldid=1260566355"