Operatoren

Operatoren sind Funktoren, die nicht direkt von einer Klammer gefolgt werden. Sie verbessern die Leserlichkeit von komplexen Termen, allerdings müssen Name, Position (Präfix, Infix, Postfix), Präzedenz und Assoziativität manuell definiert werden.
Präzedenz definiert die Wichtigkeit, in der ein Operator berechnet wird. Prolog hat ein Präzedenzfeld von 0 bis 1200 (je kleiner die Zahl, desto höher die Präzedenz). Gewisse Präzedenzpositionen sind bereits von den vordefinierten Operatoren besetzt (z.Bsp. 1100 für ;).
Assoziativität beschreibt, in welcher Reihenfolge die einzelnen Terme berechnet werden. Unterschieden wird zwischen linksassoziativ, rechtsassoziativ und nicht schachtelbar (a*b*c).
Ein Operator yfx mit Präzedenz 1000 ist somit ein linksassoziatives Infix mit einer tiefen Präzedenz.
write_canonical/1 schreibt jede Operator-Schreibweise in der Funktor-Argument-Notation heraus.