Javathcript est un outil qui permet de faire tourner dans ses pages web des scripts écrits dans une variante du langage de programmation Lisp.
Aucune configuration ni aucun plug-in ne sont requis pour que ça marche. Il suffit d'inclure un fichier Javathcript.js dans ses pages, et toutes les balises script ayant le type="text/Lisp" seront interprétés. De même qu'il est permis de charger des fichiers sources Lisp externes, pour les balises à attribut src. Vous pouvez aussi évaluer une chaîne Lisp à partir de JavaScript de la manière suivante : Javathcript.eval(chaineLisp).
Un script Lisp_script.lsp externe peut être utilisé de cette façon :
Code HTML : | Sélectionner tout |
1 2 | <script type="text/javascript" src="Javathcript.js"></script> <script type="text/Lisp" src="Lisp/prelude.lsp"></script> |
Ainsi, déclencher une boîte de dialogue avec un message : « Hello » suivi d'un nom récupéré à partir d'un champ de texte peut être simplement réalisé avec le programme Lisp suivant :
Code LISP : | Sélectionner tout |
1 2 3 4 5 6 7 8 | <script type="text/Lisp"> (let* ( (button (getElement "btn")) (nameField (getElement "name")) (clickHandler (lambda () (alert (concat "Hello " (get nameField "value"))))) ) (set button "onclick" (export clickHandler)) ) </script> |
Toutefois, cette implémentation ne jouit d'aucune optimisation de récursion terminale, et ne permet pas d'écrire des macros. Ce qui lui enlève, de l'avis de certains, tout intérêt en dehors de la syntaxe minimaliste et la représentation visuelle de l'arbre syntaxique abstrait.
Notons qu'il ne s'agit pas de l'implémentation exacte d'une variante existante de Lisp, mais avec une bonne connaissance du langage, ce serait très aisé de se familiariser avec la syntaxe d'après la description du projet.
Pour l'anecdote, LISP fut inventé par John McCarthy en 1958, alors qu'il était chercheur au MIT. Il avait présenté le langage dans un célèbre article de recherche publié dans la revue CACM en 1960.
Lisp est un langage très répandu dans la communauté de l’Intelligence artificielle. Il est fameux pour son utilisation excessive des parenthèses, que beaucoup de développeurs lui reprochent.
Javathcript est disponible sur GitHUB
Source : tout savoir sur le site du projet
Et vous ?
Que pensez-vous de cette implémentation ?
Peut-elle avoir des applications pratiques ?