In nicht-funktionalen Programmiersprachen sind die Schlüsselwörter if und then Programmierkonstrukte Bedingte Anweisung - if..then..else dazu da, um dem Compiler oder Interpreter mitzuteilen, dass eine bedingte Anweisung ausgewertet werden soll.
Was für den Nicht-funktionalen Programmierer etwas befremdlich erscheint, ist der Umstand, dass in XQuery if..then als Ausdrücke ausgewertet werden.
Das ist einerseits sehr praktisch, weil es richtig angewandt den Code verkürzt und damit das Wesentliche herausstellt, kann aber auch weiter zur allg. Verwirrung bzgl. des kryptischen XQuery Codes beitragen.