tsguide.refl.fr/content/docs/techniques/conditionals.md

1.2 KiB

title weight
Conditions 20

Conditions booléennes

Selon les compatibilités entre les rayons, des choix sont faits. Par exemple, en vérifiant une valeur de vérité :

-true result(the condition is true); 
-false result(the condition is false);
@+true;

On une étoile par clause de condition et l'entréé dans une condition (ou le choix d'une étoile) dépend de la compatibilité entre les rayons. C'est en fait le mécanisme de base de la résolution stellaire.

Conditions complexes

Ce principe peut se généraliser à n'importe quel rayon. La constellation suivante :

+not(0 1); +not(1 0);
+and(0 X 0); +and(1 X X);
+or(0 X X); +or(1 X 1);
-not(X Y) -or(Y Z R) +impl(X Z R);

-cond(X Y) -impl(X Y 1) ok;

@+cond(0 1);

peut-être lue comme "si X implique Y alors afficher ok".

Cas d'échec

Il n'est pas (nativement) possible de représenter le else de la programmation. Il est donc nécessaire de capturer tous les cas manuellement lorsque l'on souhaite être exhaustif :

+not(0 1); +not(1 0);
+and(0 X 0); +and(1 X X);
+or(0 X X); +or(1 X 1);
-not(X Y) -or(Y Z R) +impl(X Z R);

-cond(X Y) -impl(X Y 1) ok;
-cond(X Y) -impl(X Y 0) not_ok;

@+cond(0 1);