Prolog: Klauseln sind nicht zusammen in der Quelldatei
Ich habe dieses Stück code:
% Family tree
female(pen).
male(tom).
male(bob).
female(liz).
female(pat).
female(ann).
male(jim).
parent(pam, bob).
parent(tom, bob).
parent(tom, liz).
parent(bob, ann).
parent(bob, pat).
parent(pat, jim).
Bekomme ich diesen Fehler:
Warning: Clauses of female/1 are not together in source-file
Warning: Clauses of male/1 are not together in source-file
Was ist der Sinn dieses Fehlers?
Ich meine, Datei noch kompilieren und ausführen sehr gut und ich bin mir bewusst, die Bedeutung des Fehlers. Aber warum?
Ist dies nur ein Hinweis zu erzwingen, beste Praxis?
Ich bin ganz neu Logik-Programmierung.
Danke!
InformationsquelleAutor der Frage intelis | 2013-05-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Korrekt, dies ist eine Warnung an die Durchsetzung von best practices, die alle Verwandte Klauseln zusammen, die in der Quelldatei. Andere als die, die Nähe von Klauseln, die einander in der Quelldatei nicht egal, wie lange Ihre relative Reihenfolge wird nicht geändert.
InformationsquelleAutor der Antwort dasblinkenlight
Die Warnung fördert best practice und hilft spot Tippfehler. Hier ist ein Tippfehler Beispiel:
Der Fehler ist schwer zu entdecken, aber zum Glück der compiler warnt:
Mit der Abmahnung und einer Linie, Fehler finden und korrigieren Sie die Tippfehler schneller.
ISO-Prolog bietet der
discontiguous/1
Richtlinie zu schweigen, diese Warnung für bestimmte Prädikate. Siehe Abschnitt 7.4.2.3 der spec. Man benutzt es wie folgt:InformationsquelleAutor der Antwort mndrix