LiveScript
langage de programmation fonctionnel se compilant en Javascript (2011)
From Wikipedia, the free encyclopedia
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 |
| modifier |
|
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