Ich versuche nur, die Constraint-Programmierung in SWI-Prolog herauszufinden, und schaue mir dieses Tutorial an: Ссылка
Allerdings scheint ich auf die erste Hürde zu fallen.
%Vor%Was läuft hier falsch? Ich scheine die Bibliothek enthalten zu haben, aber die erste Beispielzeile aus dem Tutorial wirft einen Syntaxfehler auf.
Alle Tutorials, die ich finden kann, scheinen Operatoren wie # =, # & lt; zu verwenden. usw. Aber mein SWI-Prolog beugt sich vor ihnen. Sind sie eine zusätzliche Syntax, die mit dieser Constraint-Bibliothek geliefert wird? (Und kann ich es nicht laden?)
Oder lese ich die Tutorial-Beispiele falsch?
Update: Versuche, die Dinge aus der Antwort von Horsh unten zu verstehen. Ich kann das zum Laufen bringen, wenn ich die Bibliothek benutze und die Leitung im interaktiven Terminal führe. Wenn ich jedoch versuche, die Bibliothek zu importieren und diese Operatoren in einer Quelldatei zu verwenden, wird der Fehler erneut ausgegeben. Was verstehe ich nicht?
Update 2:
OK. Wenn ich in meiner Quelldatei die Bibliothek aufruft und dann eine Regel schreibe, die ein # & gt; enthält. Dann versuche ich es über die Befehlszeile zu konsultieren. Es wird ein Fehler und die # & gt; Syntax ist nicht erkannt. Wenn die Bibliothek in die Befehlszeile vor importiert wird, um das Programm zu konsultieren, funktioniert es. Kann das richtig sein?
Ausgehend von Horshs Antwort sollten Sie die Bibliothek in Ihren Quellcode importieren und dabei daran denken, ?-
am Anfang der Zeile wie folgt zu setzen:
Das ?-
weist SWI-Prolog an, die Zeile so auszuführen, als wäre sie direkt in den Interpreter eingegeben worden, anstatt zu versuchen, sie als Prädikat in Ihrem Programm zu deklarieren.
Seien Sie nicht besorgt, dass SWI-Prolog die Bibliothek mehr als einmal importiert. Sie kann überprüfen, ob die Bibliothek geändert wurde und lädt sie nur neu, wenn die Bibliothek seit dem letzten Laden geändert wurde.
Für alle anderen, die dies in der Zukunft finden, wenn Sie eine Bibliothek in eine SWI-Prolog-Quelldatei importieren möchten, funktioniert auch Folgendes:
%Vor% Beachten Sie die :-
und nicht ?-
.