1.7 KiB
| title | weight |
|---|---|
| Syntaxe | 20 |
Rayons
Soit une variable de la forme [A-Z] [A-Z 0-9 _ -]* '* ou un symbole de fonction
polarisé ou non par + ou - de la forme (+|-)?[a-z 0-9] [a-z A-Z 0-9 _ -]* '* '?'? appliqué à une
séquence ordonnée d'autres rayons en arguments (séquence possiblement vide dans
le cas d'une constante) :
X, a, f(X), +f(X), -f(-h(a, Y1), X2), +add-dec(0, 2, 2).
Les virgules séparant les arguments peuvent être omises :
-f(-h(a Y1) X2), +add-dec(0 2 2), string(hello i am X).
Concaténation
Un symbole de fonction binaire infixe : est disponible et peut être utilisé
pour écrire confortablement une concaténation de rayons :
a:X, a:b:b:X, f(a:X):+f(0:1:X):-f(Y).
Etoiles
Une séquence non-ordonnée de rayons terminant par un point-virgule ;:
X a +f(X);
L'étoile vide est [].
Constellations
Une séquence non-ordonnée d'étoiles :
X a +f(X); -f(-h(a Y1) X2);
+add-dec(0 2 2);
Toutes les variables sont locales à leur étoile. Donc, toutes les occurrences
de X de la première ligne sont en fait distinctes de celles de la seconde
ligne.
{{< hint info >}} Il n'y a pas de sensibilité à l'indentation ou aux sauts de ligne. {{< /hint >}}
La constellation vide est {} (elle peut apparaître en résultat
mais on ne peut pas l'écrire en tant qu'utilisateur).
Focus
Pour choisir des points de départ du calcul, il est possible de préfixer
certaines étoiles (de notre choix) avec un symbole de focus @.
@X a +f(X);
@-f(-h(a Y1) X2);
+add-dec(0 2 2);
Commentaires
'commentaire sur une seule ligne
'un autre commentaire
'''
commentaire
sur plusieurs
lignes
'''