Clojure - REPL

REPL (read-eval-print loop) est un outil pour expérimenter le code Clojure. Il vous permet d'interagir avec un programme en cours d'exécution et d'essayer rapidement si les choses se passent comme elles le devraient. Pour ce faire, il vous présente une invite dans laquelle vous pouvez entrer le code. Il lit ensuite votre entrée, l'évalue, imprime le résultat et effectue une boucle, vous présentant à nouveau une invite.

Ce processus permet un cycle de rétroaction rapide qui n'est pas possible dans la plupart des autres langues.

Démarrage d'une session REPL

Une session REPL peut être lancée dans Leiningen en tapant la commande suivante dans la ligne de commande.

lein repl

Cela lancera la fenêtre REPL suivante.

Vous commencez ensuite à évaluer les commandes Clojure dans la fenêtre REPL selon les besoins.

Pour démarrer une session REPL dans Eclipse, cliquez sur l'option Menu, allez dans Exécuter en tant que → Clojure Application.

Cela démarrera une nouvelle session REPL dans une fenêtre séparée avec la sortie de la console.

Conceptuellement, REPL est similaire à Secure Shell (SSH). De la même manière que vous pouvez utiliser SSH pour interagir avec un serveur distant, Clojure REPL vous permet d'interagir avec un processus Clojure en cours d'exécution. Cette fonctionnalité peut être très puissante car vous pouvez même attacher une REPL à une application de production en direct et modifier votre programme au fur et à mesure de son exécution.

Variables spéciales dans REPL

REPL inclut quelques variables utiles, celle largement utilisée est la variable spéciale * 1, * 2 et * 3. Ceux-ci sont utilisés pour évaluer les résultats des trois expressions les plus récentes.

L'exemple suivant montre comment ces variables peuvent être utilisées.

user => "Hello"
Hello
user => "World"
World
user => (str *2 *1)
HelloWorld

Dans l'exemple ci-dessus, les deux premières chaînes sont envoyées à la fenêtre de sortie REPL en tant que «Hello» et «World» respectivement. Ensuite, les variables * 2 et * 1 sont utilisées pour rappeler les 2 dernières expressions évaluées.