Dans ce sujet, je propose aux amateurs de curiosités exotiques une aventure dans le monde enchanté du J, un langage aussi méconnu qu'il est atypique. Développé à partir du début des années 90 par
Kenneth Iverson et
Roger Hui, sa vocation première est de permettre des calculs complexes sur des structures numériques (listes, tableaux multidimensionnels, etc), à la manière de l'antédiluvien
APL, dont il s'inspire largement. Bien qu'il permette aussi de manipuler du texte, il n'est vraiment pas conçu pour ça !
Le J se distingue par une syntaxe très particulière (n'utilisant pas de mots clés) et un vocabulaire issu de la grammaire littéraire, ce qui est plutôt inhabituel pour un langage informatique. Pour vous donner l'eau à la bouche (ou vous faire fuir en courant) voici un morceau de code typique :
- Code: Tout sélectionner
NB. fonction qui calcule les y premiers termes de la suite de Fibonacci
fibonacci =: 3 : 0
fibo =. 3 : 'y , +/ _2 {. y'
(fibo ^: (y - 2)) 0 1
)
Vous êtes encore là ?
Dans ce cas, vous allez vite vous prendre au jeu, et vous aurez certainement envie de "jouer" un peu vous-mêmes avec J ! Pour cela, deux solutions s'offrent à vous :
• Télécharger et installer J à partir du site
JSoftware (disponible pour Windows, Linux, Mac, iOS, Android et Raspberry)
• Utiliser dans votre navigateur la version en ligne
J Playground (qui ne nécessite aucune installation)
Pour commencer, rien de mieux qu'un peu d'arithmétique de base :
- Code: Tout sélectionner
2 + 3 NB. addition
5
2 - 3 NB. soustraction
_1
2 * 3 NB. multiplication
6
2 % 3 NB. division décimale
0.666667
2 ^ 3 NB. puissance
8
2 | 3 NB. reste de la division euclidienne
1
2 + 3 * 4 - 6 % 2
5
On peut déjà noter plusieurs choses :
• Tout ce qui suit
NB. sur une ligne de code est considéré comme du commentaire
• La notation particulière des nombres négatifs : par exemple
_1 et pas -1 !
• La notation particulière de la division :
% et pas / comme dans la plupart des autres langages !
• L'absence de "priorités arithmétiques" : l'évaluation se fait
toujours de droite à gauche, quels que soient les opérateurs !
A suivre...↓ épisode suivant ↓