LiveScript

langage de programmation fonctionnel se compilant en Javascript (2011)

LiveScript
Date de première version Voir et modifier les données sur Wikidata
Dernière version 1.6.1 ()[1]Voir et modifier les données sur Wikidata
Influencé par CoffeeScript
JavaScript
Haskell
F#Voir et modifier les données sur Wikidata
Écrit en JavaScriptVoir et modifier les données sur Wikidata
Licence Licence MIT[2]Voir et modifier les données sur Wikidata
Site web livescript.netVoir et modifier les données sur Wikidata

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].

Syntaxe modifier

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 modifier

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 modifier

À 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 modifier

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 modifier

  1. a et b « Release 1.6.1 », (consulté le )
  2. Open Hub, (site web), consulté le  
  3. (en) « Page des contributeurs à LiveScript », sur GitHub (consulté le )
  4. « Chapter 4. How JavaScript Was Created », sur speakingjs.com (consulté le )
  5. « LiveScript - a language which compiles to JavaScript », sur livescript.net (consulté le )
  6. « prelude.ls - a functionally oriented utility library in LiveScript », sur www.preludels.com (consulté le )

Liens externes modifier