Bonjour,
Je suis en train d'apprendre le langage J. Pour ceux qui ne le connaissent pas, le J se veut le successeur d'APL. C'est un langage interprété (l'interpréteur est téléchargeable gratuitement chez www.jsoftware.com), destiné à effectuer des calculs sur des tableaux.
A la base, ca se présente donc comme une calculette géante, avec un grand nombre d'opérateurs de base. On a les 4 opérations, pour les nombres, les listes et les matrices, mais aussi des opérateurs "de base" pour les logarithmes, les puissances, les décompositions en facteurs premiers, l'inversion matricielle, les conversions d'une base à une autres, etc... Tous les opérateurs s'écrivent avec un ou deux caractères (diviser c'est %, racine carrée %:, inversion matricielle %. ...)
Les types de données gérés nativement incluent les réels, les fractions, les complexes, les chaines de caractères (sous forme de vecteurs, ou de matrices).
La principale force du langage est sa capacité à définir de nouveaux opérateurs sans jamais faire référence aux données qu'ils vont traiter. Ceci est fait par des règles complexes de composition d'opérateurs.
Par exemple, <. est la partie entière d'un nombre, = la comparaison, pour tester si un nombre est entier, on fera =<. (égal à sa partie entière).
%: est la racine carrée, +/ la somme de tous les éléments d'un vecteur, et *: le carré. On peut définir la norme d'un vecteur (quelle que soit sa taille) par %:+/*: (racine de la somme des carrés...)
Ces assemblages permettent d'exprimer très simplement des formules complexes : par exemple, le calcul des convergents d'une fraction continue s'exprime en (+%)/ (ajouter et prendre l'inverse pour chaque élément)...
Enfin, on dispose d'opérateurs gérant les différentes facettes de la composition de fonctions. Notamment un opérateur permettant la composition multiple, et même l'inversion d'une fonction. Par exemple p:1000 donne le 1000ième nombre premier, p:^:_1 1000 le plus petit nombre premier supérieur à 1000...
Au total ca donne un langage pas très facile d'abord, absolument déconseillé à ceux qui n'aiment pas la notation mathématique, mais très curieux et très puissant, et finalement assez intuitif une fois qu'on a "pigé le truc" (le truc étant que ca s'écrit comme ca se dit...)
Y'a-t-il ici d'autres pratiquants? Qu'on essaye d'échanger sur le sujet...
Francois
Partager