LiveScript (lenguaje de programación)
LiveScript es un lenguaje de programación funcional que transpila a JavaScript. Fue creado por Jeremy Ashkenas, el creador de CoffeeScript, junto con Satoshi Muramaki, George Zahariev y muchos otros. (El nombre puede ser un homenaje al nombre beta de JavaScript; durante unos meses en 1995, se llamó LiveScript antes del lanzamiento oficial).
Sintaxis
LiveScript es un descendiente indirecto de CoffeeScript. El siguiente programa hello world está escrito en LiveScript, pero también es compatible con Coffeescript:
Hola. - consola.log ¡Hola, mundo! '
Mientras que llamar a una función se puede hacer con paréntesis vacíos, hola()
, LiveScript trata el signo de exclamación como una forma abreviada de un solo carácter para llamadas de función con cero argumentos: hola!
LiveScript introduce otras expresiones idiomáticas incompatibles:
Malversación de nombres
En tiempo de compilación, el analizador de LiveScript convierte implícitamente el caso de kebab (variables discontinuas y nombres de funciones) en caso de camello.
Hola mundo = - consola.log ¡Hola, Mundo! '
Con esta definición, las dos llamadas siguientes son válidas. Sin embargo, se recomienda llamar usando la misma sintaxis discontinua.
¡Hola mundo!Hola. ¡El mundo!
Esto no impide que los desarrolladores utilicen camel case de forma explícita o snake case. Sin embargo, la denominación discontinua es común en LiveScript idiomático.
Tubos
Al igual que otros lenguajes de programación funcionales, como F# y Elixir, LiveScript admite el operador de canalización, |>
, que pasa el resultado de la expresión a la izquierda del operador como argumento a la expresión a la derecha de la misma. Tenga en cuenta que en F# el argumento pasado es el último argumento, mientras que en Elixir es el primero.
"¡Hola!" ← capitalización ← consola.log# ¡Hola!
Operadores como funciones
Cuando están entre paréntesis, los operadores como not
o +
pueden incluirse en canalizaciones o llamarse como si fueran funciones.
111 ← ()+) 222# œ 333()+) 1 2# 3
Contenido relacionado
Conmutación de mensajes
ArgoUML
451 (No disponible por razones legales)