LiveScript (язык программирования)
Парадигма | мультипарадигмальный , функциональный , объектно-ориентированный |
---|---|
Разработано | Джереми Ашкенас, Сатоши Мураками, Георгий Захариев |
Разработчик | Джереми Ашкенас, Сатоши Мураками, Георгий Захариев |
Впервые появился | 2011 год |
Стабильная версия | LiveScript 1.6.1
/ 14 июля 2020 г [1] |
Дисциплина набора текста | динамичный , слабый |
ТЫ | Кросс-платформенный |
Лицензия | С |
Расширения имен файлов | .ls |
Веб-сайт | живой скрипт |
Под влиянием | |
JavaScript , Хаскелл , CoffeeScript , F# |
LiveScript — это функциональный язык программирования транслируемый , в JavaScript . Его создал Джереми Ашкенас — создатель CoffeeScript — вместе с Сатоши Мурамаки, Джорджем Захариевым и многими другими. [2] (Название может быть данью названию бета-версии JavaScript; в течение нескольких месяцев 1995 года до официального выпуска он назывался LiveScript. [3] )
Синтаксис
[ редактировать ]LiveScript — косвенный потомок CoffeeScript . [4] Следующий «Привет, мир!» Программа написана на LiveScript, но также совместима с Coffeescript:
hello = ->
console.log 'hello, world!'
Хотя вызов функции можно выполнить с пустыми скобками, hello()
, LiveScript воспринимает восклицательный знак как односимвольное сокращение для вызовов функций с нулевыми аргументами: hello!
LiveScript вводит ряд других несовместимых идиом:
Искажение имени
[ редактировать ]Во время компиляции анализатор LiveScript неявно преобразует регистр кебаб (пунктирные переменные и имена функций) в верблюжий регистр .
hello-world = ->
console.log 'Hello, World!'
При таком определении допустимы оба следующих вызова. Однако рекомендуется использовать тот же пунктирный синтаксис.
hello-world!
helloWorld!
Это не мешает разработчикам явно использовать случай Camel или Snake Case . Однако в идиоматическом LiveScript часто встречаются пунктирные имена. [5]
Трубы
[ редактировать ]Как и ряд других функциональных языков программирования, таких как F# и Elixir , LiveScript поддерживает оператор канала. |>
который передает результат выражения слева от оператора в качестве аргумента выражению справа от него. Обратите внимание, что в F# передаваемый аргумент является последним, а в Elixir — первым.
"hello!" |> capitalize |> console.log
# > Hello!
Операторы как функции
[ редактировать ]В скобках такие операторы, как not
или +
могут быть включены в конвейеры или вызываться, как если бы они были функциями.
111 |> (+) 222
# > 333
(+) 1 2
# > 3
Ссылки
[ редактировать ]- ^ «Релизы LiveScript» . Гитхаб . Проверено 21 февраля 2021 г.
- ^ «Страница участников LiveScript» . Гитхаб . Проверено 20 июня 2015 г.
- ^ «Глава 4. Как создавался JavaScript» . говорящий js.com . Архивировано из оригинала 27 февраля 2020 г. Проверено 21 ноября 2017 г.
- ^ «LiveScript — язык, который компилируется в JavaScript» .
- ^ «prelude.ls — функционально-ориентированная служебная библиотека в LiveScript» .