LiveScript
LiveScript est un langage de programmation fonctionnel qui se compile en JavaScript. Il a été créé par Jeremy Ashkenas - également créateur de CoffeeScript - avec Satoshi Muramaki, George Zahariev, et bien d'autres[3]. LiveScript a aussi été le premier nom de JavaScript durant une brève période dans les années 1990[4].
LiveScript | |
Date de première version | |
---|---|
Dernière version | 1.6.1 ()[1] |
Influencé par | CoffeeScript JavaScript Haskell F# |
Écrit en | JavaScript |
Licence | Licence MIT[2] |
Site web | livescript.net et livescript.net |
Cet article concerne le langage de programmation fonctionnelle qui se compile en Javascript. Pour le lanagage Javascript lui-même, voir Javascript.
Syntaxe
LiveScript est un descendant indirect de CoffeeScript[5]. Le programme hello world suivant est écrit en LiveScript, mais est également compatible avec CoffeeScript :
hello = ->
console.log 'hello, world!'
Si l'appel d'une fonction peut se faire avec des parenthèses vides, hello()
, LiveScript traite le point d'exclamation comme une abréviation à un seul caractère pour les appels de fonctions avec zéro argument : hello!
LiveScript introduit un certain nombre d'autres idiomes spécifiques :
Name mangling
Au moment de la compilation, l'analyseur LiveScript convertit implicitement la casse kebab (variables pointillées et noms de fonctions) en casse camel.
hello-world = ->
console.log 'Hello, World!'
Avec cette définition, les deux appels suivants sont valables. Toutefois, il est recommandé d'utiliser la même syntaxe en tirets.
hello-world!
helloWorld!
Cela n'empêche pas les développeurs d'utiliser explicitement la casse camel ou d'utiliser la casse snake. Le nommage en pointillés est cependant courant en LiveScript idiomatiques[6].
Tubes
À l'instar d'un certain nombre d'autres langages de programmation fonctionnels tels que F# et Elixir, LiveScript prend en charge l'opérateur pipe, |>
qui transmet le résultat de l'expression à gauche de l'opérateur comme argument à l'expression à droite de celui-ci. Notez que dans F#, l'argument passé est le dernier argument, alors que dans Elixir, il est le premier.
"hello!" |> capitalize |> console.log
# > Hello!
Opérateurs en tant que fonctions
Entre parenthèses, les opérateurs tels que not
ou +
peuvent être inclus dans les pipelines ou appelés comme s'ils étaient des fonctions.
111 |> (+) 222
# > 333
(+) 1 2
# > 3
Références
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « LiveScript » (voir la liste des auteurs).
- « Release 1.6.1 », (consulté le )
- Open Hub, (site web), consulté le
- (en) « Page des contributeurs à LiveScript », sur GitHub (consulté le )
- « Chapter 4. How JavaScript Was Created », sur speakingjs.com (consulté le )
- « LiveScript - a language which compiles to JavaScript », sur livescript.net (consulté le )
- « prelude.ls - a functionally oriented utility library in LiveScript », sur www.preludels.com (consulté le )