Парадигмы | многопарадигмальный , функциональный , объектно-ориентированный |
---|---|
Разработано | Джереми Ашкенас , Сатоши Мураками, Георгий Захариев |
Разработчики | (такой же) |
Впервые появился | 2011 ( 2011 ) |
Стабильный релиз | 1.6.1 / 14 июля 2020 г. ( 2020-07-14 ) [1] |
Дисциплина набора текста | динамичный , слабый |
Объем | Лексический |
ОС | Кроссплатформенный |
Лицензия | Массачусетский технологический институт |
Расширения имени файла | .ls |
Веб-сайт | livescript.net |
Под влиянием | |
JavaScript , Haskell , CoffeeScript , F# |
LiveScript — это функциональный язык программирования , который транспилируется в JavaScript . Он был создан Джереми Ашкенасом , создателем CoffeeScript , вместе с Сатоши Мурамаки, Джорджем Захариевым и многими другими. [2] (Название может быть данью уважения названию бета-версии JavaScript; в течение нескольких месяцев в 1995 году он назывался LiveScript до официального релиза. [3] )
LiveScript является косвенным потомком CoffeeScript . [4] Следующая программа «Hello, World!» написана на LiveScript, но также совместима с Coffeescript:
hello = -> console . log 'привет, мир!'
Хотя вызов функции можно выполнить с пустыми скобками, hello()
LiveScript рассматривает восклицательный знак как односимвольное сокращение для вызовов функций с нулевыми аргументами:hello!
LiveScript вводит ряд других несовместимых идиом:
Во время компиляции анализатор LiveScript неявно преобразует кебаб-регистр (переменные и имена функций, обозначенные пунктиром) в верблюжий регистр .
hello-world = -> console . log 'Привет, мир!'
При таком определении оба следующих вызова допустимы. Однако рекомендуется вызов с использованием того же синтаксиса с дефисом.
привет-мир! приветМир!
Это не мешает разработчикам явно использовать camel case или snake case . Однако в идиоматическом LiveScript часто встречается дефисное наименование [5]
Оператор конвейера |>
передает результат выражения слева от оператора в качестве аргумента выражению справа от него. LiveScript поддерживает их, как и некоторые другие функциональные языки, такие как F# и Elixir ; аргумент, переданный в F#, является последним, но в Elixir — первым.
"привет!" |> заглавные буквы |> console . log # > Привет!
При заключении в скобки такие операторы, как not
или , +
могут быть включены в конвейеры или вызваны так, как если бы они были функциями.
111 |> ( + ) 222 # > 333 ( + ) 1 2 # > 3