====== if ====== if wird über die Operatoren then und else abgebildet: a == 1 then print "a ist 1\n"; else print "a ist nicht 1\n"; then und else geben den Wert zurück, der hinter ihrem Ausdruck steht: v = a == 1 then 4711 else func(); Hier müssen then und else den gleichen Typ zurückgeben. then und else können alleine verwendet werden: a = value else 4711; // value oder 4711, falls value == null; v = value then 5711; // 0 oder 5711, falls value != null Appendix-Operatoren können die Rückgabe beschreiben oder verändern. ? bedeutet, dass der Wert der Bedinugng zurück gegeben wird. C++: if( condition ) { func(); return true; } return false; Genesys: return condition then? func(); if( !condition ) return false; else { func(); return true; } return !condition else? func(); v = a == 1 then 4711 else func(); # Gibt den Wert der condition als NUMBER zurück return condition then# print "condition is true"; // gibt 1/1.0/"true"/type(true) zurück else# print "condition is false"; // gibt 0/0.0/"false"/type(null) zurück Das ganze lässt sich mischen: return condition then? print "condition is true"; // gibt bool::true zurück else func(); // func() muss ein Bool zurückgeben return condition then 4711; // gibt 4711 zurück else# procedure(); // gibt number::null zurück Operatoren als Guard file = ^/usr/bin/echo^; // read, position = 0; Wie kann man write/append ausdrücken? file else fail FileNotFound; file("Hallo Welt"); // Execute "echo Hallo Welt"