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

1.5 KiB

title weight
Syntaxe 1

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 _]+ 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);

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

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