[Code] Prolog Unification

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von sun0025, 27. November 2011 .

Schlagworte:
  1. 27. November 2011
    Prolog Unification

    Hi,

    ich hab mal ne Recht einfache Frage:

    Was bedeutet der Begriff Unification in dem Programmiersystem Prolog genau ?

    und auf folgendes Beispiel bezogen:

    Ist diese Unification erfolgreich, wenn ja warum ?:

    n(F,g) n(k,G)



    Meine Frage dazu wäre auch wie kann ich testen ob die Unification stimmt ?

    so far
    sun
     
  2. 27. November 2011
    AW: Prolog Unification

    Unification bedeutet, dass Terme durch Variablenersetzung gleich gemacht werden.
    Bei deinem Beispiel musst du also gucken, ob (und mit welcher Belegung) die beiden Terme den gleichen Ausdruck darstellen. Als Variablen kommen ja nur F und G vor. Also guckst du jetzt mit welcher Belegung von F und G die beiden Terme gleich werden. Probier's mal selbst.
    Falls es keine entsprechende Belegung gibt, sind die Terme nicht unifizierbar.
     
  3. 30. November 2011
    AW: Prolog Unification

    Moin

    Jsee hat's schon nicht schlecht erklärt. In Prolog ist es so, dass Grossgeschriebenes "Variablen" sind, keine echten veränderbaren Variablen sondern solche die einmal einen Zustand annehmen und dann bleiben. Solche Zustände können bspw kleingeschriebenes sein, aber auch Listen etc.

    Daher funktioniert deine Unifikation, n(F,g) n(k,G) -> n(k,g)
    F=k, G=g.

    Unifikation ist ok, solange eine Variable nicht durch verschiedene Zustände ersetzt werden muss, und wenn nach Unifikation die Variable verschwunden ist. (Also z.B. n(f(G)) kann nicht mit n(G) uniform gemacht werden).

    Mfg
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.