Undefined predicate

decembersoul, erstellt 10. Okt 2013 Hallo Ich bin gerade erst angefangen mich mit Prolog zu befassen. Daher entschuldige ich mich schon mal für meine folgenden Fragen. In meinem Buch ist das erste Beispiel das bekannte frau(maria). frau(michaela). mann(jens). mann(bernd). mutter(maria,jens). vater(bernd,jens). dann würden ein paar Klausel kommen. Ich bin aber schon zu doof um die einfachen Fakten ein zu geben. Ich benutze jekejeke auf meinem Android Tablet. Auf meinem PC benutze ich SWI-Prolog. Da geht alles. Wenn ich unter Android jekejeke starte(v0.9.11), dann bekomme ich den Prompt ?- Wenn ich dann dort frau(maria). eingebe, dann bekomme ich folgende Fehlermeldung: Error: Undefined predicate frau/1 frau/1 und dann kommt der Prompt wieder. Die Meldung macht Sinn aber ich will ja gerade das Predicate definieren. Ich habe mir nun mal eine Stunde die Hilfe angesehen und ich bekomme es nicht hin. Sicher habe ich einfach Tomaten auf den Augen. Kann mir jemand den ersten Schritt erklären?

Kommentare

Aw: Undefined predicate

Jan Burse, erstellt 11. Okt 2013 Hallo, Um Prädikate ausführen zu können, muss zuerst ein Prolog text mit den Klauseln zu dem Prädikat dem Prolog interpreter vor die Füsse geworfen werden. Das kann man z.B. indem man vom Standardinput liest tun. Dazu gibt es den reservierten Dateinamen 'user': ?- [user]. app([], X, X). app([X|Y], Z, [X|T]) :- app(Y, Z, T). ^D Ob man das Lesen mit ^D beenden kann, hängt von der Platform ab. Es kann ein Ctrl-Z oder Ctrl-D sein auf ttys. Oder es kann der Menu Eintrag Submit EOF in der Swingkonsole sein, oder der Back Button in der Androidkonsole. Nachdem der Prolog text gelesen wurde, kann man das Prädikat ausführen da es jetzt definiert ist: ?- app(X,Y,[1,2,3]). X = [], Y = [1,2,3] ; X = [1], Y = [2,3] Für weitere Information dazu was der Top-Level liefert in der Jekejeke Laufzeit siehe z.B. hier: Prolog Conversations Die Entwicklungsumgebung liefert zusätzliche Kommands zum debuggen. Siehe z.B. hier: Environment Conversations Schöne Grüsse