LiveScript - LiveScript

LiveScript
Парадигма мультипарадигмальный , функциональный , объектно-ориентированный
Разработано Джереми Ашкенас, Сатоши Мураками, Георгий Захариев
Разработчик Джереми Ашкенас, Сатоши Мураками, Георгий Захариев
Впервые появился 2011 ; 10 лет назад  ( 2011 )
Стабильный выпуск
LiveScript 1.6.1 / 14 июля 2020 г . ; 10 месяцев назад  ( 2020-07-14 )
Печатная дисциплина динамичный , слабый
Операционные системы Кроссплатформенность
Лицензия Массачусетский технологический институт
Расширения имени файла .ls
Веб-сайт livescript .net
Под влиянием
JavaScript , Haskell , CoffeeScript , F #

LiveScript - это функциональный язык программирования, который компилируется в JavaScript . Его создали Джереми Ашкенас - создатель CoffeeScript - вместе с Сатоши Мурамаки, Георгием Захариевым и многими другими. Не путать с JavaScript (в течение короткого периода в 1990-х LiveScript назывался JavaScript).

Синтаксис

LiveScript является косвенным потомком CoffeeScript . Следующая программа hello world написана на LiveScript, но также совместима с Coffeescript:

hello = ->
  console.log 'hello, world!'

Хотя вызов функции может выполняться с пустыми скобками, hello() LiveScript обрабатывает восклицательный знак как односимвольное сокращение для вызовов функций с нулевыми аргументами: hello!

LiveScript вводит ряд других несовместимых идиом:

Изменение имени

Во время компиляции синтаксический анализатор LiveScript неявно преобразует регистр kebab (пунктирные переменные и имена функций) в camelcase .

hello-world = ->
  console.log 'Hello, World!'

С этим определением действительны оба следующих вызова. Однако рекомендуется использовать тот же пунктирный синтаксис.

hello-world!
helloWorld!

Это не мешает разработчикам явно использовать camelcase или использовать snakecase . Однако пунктирное обозначение часто встречается в идиоматическом LiveScript.

Трубы

Как и ряд других языков функционального программирования, таких как F # и Elixir , LiveScript поддерживает оператор канала, |> который передает результат выражения слева от оператора в качестве аргумента к выражению справа от него. Обратите внимание, что в F # переданный аргумент является последним аргументом, а в Elixir - первым.

"hello!" |> capitalize |> console.log
# > Hello!

Операторы как функции

В скобках такие операторы, как not или, + могут быть включены в конвейеры или вызываться, как если бы они были функциями.

111 |> (+) 222
# > 333

(+) 1 2
# > 3

Рекомендации

Внешние ссылки