[ON] Представлен язык программирования Gauntlet, расширяющий возможности языка Go

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Аватара пользователя
rssbot
Бот
Сообщения: 6001
ОС: gnu/linux

[ON] Представлен язык программирования Gauntlet, расширяющий возможности языка Go

Сообщение rssbot »

Доступен первый альфа-выпуск языка программирования Gauntlet, надстройки над языком Go, решающей некоторые архитектурные проблемы и добавляющей дополнительную функциональность. Программы на языке Gauntlet поддерживают все возможности языка Go, транслируются в представление на языке Go и интегрируются с существующей экосистемой Go без необходимости задействования обвязок (binding). Развиваемый проектом инструментарий написан на языке F# и распространяется под лицензией GPLv3. Для работы с кодом предоставляется дополнение к редактору VSCode.


Решаемые в Gauntlet проблемы:
  • Назойливый вывод ошибок, связанных с неиспользуемыми переменными (Gauntlet добавляет для всех неиспользуемых переменных заглушки вида "_ = a").
  • Раздутый код для обработки ошибок. В Gauntlet вместо условных блоков вида "if err != nil" используются однострочные выражения "try-with".
  • Назойливый способ импорта и экспорта (например, в Go необходимо, чтобы экспортируемые имена начинались на заглавную букву).
  • Отсутствие тернарного оператора. В Gauntlet можно использовать выражения вида 'let properWord = @String len(lines) > 1 ? "lines" : "line"'.
  • Отсутствие синтаксиса switch-case с вычисляемыми выражениями.
  • Усложнённые циклы "for". В Gauntlet можно писать
    "for let _, c in "Hello" {" вместо "for _, c := range "Hello" {".
  • Необычный оператор присваивания (":=" для одновременного объявления и инициализации переменных; "=" для изменения значения уже объявленных переменных).
  • Невозможность вызова функций по цепочке (в Gauntlet поддерживается вызов вида 'let trimmedLines = fileContentStrVersion => strings.trimSpace(_) => strings.split(_, "\n")'.



Расширенные возможности Gauntlet:
  • Синтаксис "when-is" похожий на switch.case, но манипулирующий выражениями.
  • Поддержка pipe-каналов, позволяющих по цепочке пропускать значение через несколько выражений или функций. например "10 => add(_, 10) => add(_, 30) => divide(_, 2)".
  • Выражения "try .. with" и "force .. with".
  • Выражение "wrapper" для создания псевдонимов типов (например. "wrapper Int Dollars").


Источник: https://www.opennet.ru/opennews/art.shtml?num=63348
(opennet.ru, основная лента)
Последний раз редактировалось rssbot 03.06.2025 19:51, всего редактировалось 2 раза.
Причина: Updated upstream
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21271
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [ON] Представлен язык программирования Gauntlet, расширяющий возможности языка Go

Сообщение Bizdelnick »

Пришёл фанат дотнета, объявил половину фич багами и кинулся их чинить? Ну-ну.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: