Suche…


Benennung

Bei der Programmierung in Prolog müssen wir zwei Arten von Namen auswählen:

  • Namen von Prädikaten
  • Namen von Variablen .

Ein guter Prädikatsname macht deutlich, was jedes Argument bedeutet. Konventionell werden Unterstriche in Namen verwendet, um die Beschreibung verschiedener Argumente zu trennen. Dies liegt daran , underscores_keep_even_longer_names_readable , während mixingTheCasesDoesNotDoThisToTheSameExtent .

Beispiele für gute Prädikatenbezeichnungen sind:

  • parent_child/2
  • person_likes/2
  • route_to/2

Beachten Sie, dass beschreibende Namen verwendet werden. Imperative werden vermieden. Die Verwendung beschreibender Namen ist ratsam, da Prolog-Prädikate normalerweise in mehrere Richtungen verwendet werden können und der Name auch für alle oder keine der Argumente gelten sollte, die instanziiert werden.

Bei der Auswahl von Variablennamen ist die gemischte Großschreibung häufiger. Zum Beispiel: BestSolutions , MinElement , GreatestDivisor . Eine übliche Konvention zum Benennen von Variablen, die aufeinanderfolgende Zustände bezeichnen , ist die Verwendung von S0 , S1 , S2 , ..., S , wobei S den Endzustand darstellt.

Vertiefung

Es gibt nur wenige Sprachkonstrukte in Prolog, und es gibt verschiedene Möglichkeiten, sie einzurücken.

Egal , welche Art gewählt wird, ein Prinzip , das immer eingehalten werden soll, ist nie zu platzieren (;)/2 am Ende einer Zeile. Dies ist weil ; und , sehr ähnlich aussehen, und , tritt häufig am Ende einer Zeile. Daher sollten Klauseln, die eine Disjunktion verwenden, beispielsweise wie folgt geschrieben werden:

(  Goal1
;  Goal2 
)

Reihenfolge der Argumente

Prolog-Prädikate können idealerweise in alle Richtungen verwendet werden. Für viele reine Prädikate ist dies auch tatsächlich der Fall. Einige Prädikate funktionieren jedoch nur in bestimmten Modi , dh Instanziierungsmuster ihrer Argumente.

Die üblichste Argumentreihenfolge für solche Prädikate lautet:

  • Eingabeargumente werden zuerst platziert. Diese Argumente müssen instanziiert werden, bevor das Prädikat aufgerufen wird.
  • Paare von Argumenten, die zusammengehören, werden nebeneinander gesetzt, wie p(..., State0, State, ...)
  • beabsichtigte Ausgabeargumente werden als letztes platziert. Diese Prädikate werden durch das Prädikat instanziiert.


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow