In der Vorlesung ging es um Betreiber und deren Priorität. Während die Aufgabe auf einem Anfängerniveau ist, habe ich Schwierigkeiten, meinen Kopf herumzulegen, wo man sogar die Logik findet.Wechsel der Operatoren in Prolog
Die Aufgabe ist Betreiber mit einem erfüllt/2 Prädikat zu ändern:
?- met(q+w+e,Y).
Y=q-w-e.
?- met(q-w-e,Y).
Y=q+w+e.
ich nichts dagegen, wenn Leute mir den richtigen Weg schubsen oder die Antwort straightout geben. Ich habe das jetzt eine Weile gegoogelt und nichts gefunden. Ich habe versucht, wenn - dann, aber es hat nicht funktioniert.
Vielen Dank im Voraus!
Nur ein sehr kleiner Zusatz zu dieser guten Antwort für OP: Wir können ohne Apostrophe die Klausel Kopf schreiben, wie 'traf (+ (links, rechts), - (Tleft, Tright)): - ... ', und mit Hilfe von Infix-Operatoren:' met (Links + Rechts, TLeft-TRight): - ... '. Dies sind äquivalente Bezeichnungen für die gleichen Begriffe. – mat
Operator Notation ist praktisch und, wenn Sie mit Standardoperatoren arbeiten, normalerweise sicher. Auf der anderen Seite kann die Vermeidung von Abhängigkeiten von den Besonderheiten von Operatordeklarationen * und * den Macken von Prolog-Parsern zu robusterem und portablem Code führen. Aber oben wurde nur betont, dass die Operatoren nur Syntaxzucker sind. –