tsguide.refl.fr/content/docs/playing/syntax.md

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
'''