Interface shell qui permet de manipuler des streams de nombres rationnels.
L'écriture d'une expression doit se faire en utilisant la notation polonaise inverse (RPN: Reverse Polish Notation).
a = expression
Permet d'affecter la valeur calculée de l'espression dans la variable locale a.
expression
Ecrire une expression sans mettre de variable au début affecte la valeur calculée de l'expression à une variable temporaire (tmp0, tmp1...).
Affecter à une variable la somme de tous les nombres entre 1 et 100 (inclus):
somme = 1 <integers> 0 99 <slice> <sum>
Générer un stream d'entiers de 1 jusqu'à l'infini, le mélanger, garder les 10 premiers termes et le trier:
1 <integers> -1 <shuffle> 0 10 <slice> <sorted>
On peut réutiliser une variable affectée:
suite = 1 <integers> 0 99 <slice>
somme = suite <sum> # 5050
moyenne = suite <average> # 50.5
produit = suite <product> # 100!
/printvar x: affiche le contenu de la variable x. Si x est un stream, affiche l'enchaînement de sources et de traitements définissant ce stream. Si x est un rationnel, affiche le numérateur, le dénominateur ainsi qu'une valeur flottante approchée./printvars: affiche le contenu de toutes les variables définies./quit: permet de quitter le shell.
x y <add>: permet d'additionner des rationnels (x + y).x y <sub>: permet de soustraire des rationnels (x - y).x y <mul>: permet de multiplier des rationnels (x * y).x y <div>: permet de diviser des rationnels (x / y).
x <integers>: produit un stream avec les entiers de x jusqu'à plus l'infini.x <revintegers>: produit un stream avec les entiers de x jusqu'à moins l'infini.x y <fibo>: produit un stream avec le snombres de Fibonacci avec x et y comme deux premiers termes.x y seed <random>: produit un stream d'entiers pseudo-aléatoires compris entre x et y. Si le seed est différent de -1, il est utilisé pour initialiser le générateur d enombres pseudo-aléatoires. Si le seed est -1, un seed pseudo-aléatoire est utilisé.
stream x b <slice>: extrait une tranche du stream débutant à l'élément d'indice x (inclus) et se terminant à l'élément d'indice y (inclus).stream x <repeat>: répète x fois un stream. Si x n'est pas un entier (rationnel non entier), il est possible que la dernière répétition du stream ne soit pas complète (par exemplestream 1/2 <repeat>permet d'obtenir que la moitié des termes d'un stream).stream1 stream2 <concat>: concatène deux streams.stream1 stream2 <inter>: retourne les éléments de stream1 qui sont également présents dans stream2 (dans l'ordre de stream1).stream <sorted>: trie un stream.stream seed <shuffle>: mélange un stream (avec un paramètre seed utilisé pour l'initialisation du générateur de nombres pseudo-aléatoires).
stream <print>: écrit les éléments du stream (un élément par ligne).stream <len>: retourne la longueur d'un stream.stream <sum>: retourne la somme de tous les éléments d'un stream.stream <product>: retourne le produit de tous les éléments d'un stream.stream <average>: retourne la moyenne d'un stream.stream <max>: retourne le maximum d'un stream.stream <min>: retourne le minimum d'un stream.stream x <get>: retourne l'élément d'indice x du stream.