Aller au contenu

LiveScript

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 10 avril 2020 à 21:52 et modifiée en dernier par Enrevseluj (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

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

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

  1. a et b « Release 1.6.1 », (consulté le )
  2. Open Hub, (site web), consulté le Voir et modifier les données sur Wikidata
  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