2017-03-09 4 views
3

Ich habe Prolog Kurs in meiner Universität aufgenommen. Die Kursarbeit erfordert, dass wir Prolog-Programme schreiben. Ich bin in der Lage, einfache Programme zu schreiben, aber ich finde es wenig schwierig, die komplexen Programme zu verdauen. Irgendwelche Vorschläge, wie man vorgeht oder wie studiere ich dieses Thema? Was ist der Ansatz, um diese Art von Kurs zu bewältigen? Jede Hilfe wird geschätzt. Danke.wie gehe ich an Prolog

+3

Können Sie ein Beispiel eines Programms nennen, das Sie schwer verdauen können? Vielleicht können wir das Beispiel verdeutlichen und zeigen, wie es zu analysieren ist. –

+0

Wie beim Lernen eines komplexen Systems. Beginne mit Kleinteilen, lerne sie komplett und baue auf. Auch versuchen, es jemand anderem beizubringen hilft. Versuchen Sie zu sehen, ob Sie jede Frage für Prolog beantworten können, die aufkommt, und wenn Sie nicht lernen können, wie Sie gehen. In ein paar Wochen sollten Sie in der Lage sein zu antworten, und wenn Sie falsch antworten, sollten Sie Rückmeldung darüber bekommen, wo Sie schief gelaufen sind. –

+0

@WillemVanOnsem. Map Coloring, Färbung eines Graphen mit nicht mehr als 4 Farben. – lisa

Antwort

5

Ich schreibe eine Antwort (die wahrscheinlich nur schimpfen), weil ich mit den gleichen Problemen kämpfen. Wenn eine Frage geschlossen wird, denke ich, dass die Antwort immer noch bleibt?

Was ist der Ansatz, um diese Art von Kurs zu bewältigen.

Wie alle Kurse sammeln Sie alle Materialien, die Ihr Lehrer/Lehrer/Professor gibt und finden Sie die Bücher, die sie empfehlen. Sie machen die Übungen so, wie sie es erwarten. Sei nicht schlau mit deinen Lösungen, sei clever mit dem, was dein Lehrer sehen möchte! Versuche alte Prüfungen zu finden und studiere sie; esp. wenn du benotete Prüfungen findest (wenn du Glück hast und "einfallsreich" bist ... bitte ältere Schüler um Hilfe!)

Irgendwelche Vorschläge, wie man vorgeht oder wie studiere ich dieses Thema?

Es ist schwierig, Prolog zu lernen. Ich versuche es an der Universität zu lernen und der Lehrer sagt eine Sache. Dann nehme ich ein Buch ("Sterling und Shapiro") und es sagt etwas anderes. Dann gehe ich online und finde noch zwei sehr unterschiedliche Dinge ("Amzi Amazing Adventure" und "Learn Prolog Now!"). Es gibt auch "Expertensysteme in Prolog" (von der Amzi-Website) und es ist noch etwas anderes. Ich komme zu StackOverflow und finde noch weitere Antworten, die NOWHERE in allen Texten sind, die ich versucht habe zu lesen.

Der beste Ort, um für mich zu lernen, ist die SWI-Prolog Prädikat-Dokumentation: das ist unverschämt, nicht wahr? Zumindest ist es konsistent ....

Und dann viele der Antworten hier auf Stackoverflow Ich habe versucht zu lernen von über Dinge reden, die keinen Sinn (für mich), wahrscheinlich, weil ich nicht Prolog, aber wie lernt man es? Und fast alle Fragen sind Hausaufgaben, und fast alle Antworten auf Hausaufgaben sind wie kleine Vorträge, die über ISO und Logik und Reinheit sprechen, aber keine klaren Antworten.

Fazit: "Sterling und Shapiro" war mindestens komplett, und nicht zu seltsam; und SWI-Prolog hat eine gute Prädikat-Dokumentation und sogar Codebeispiele.

EDIT: Nirgendwo Nirgendwo in allen Texten lesen Sie über Module, aber wie schreiben Sie große Programme ohne Modulsystem? Sogar das C++ Buch von Stroustrup erklärt, wie man Header und Quelldateien verwendet, um ein größeres Programm zu verwalten. Wieder gehen Sie und lesen Sie das Kapitel über Module in der SWI-Prolog-Dokumentation.

EDIT2: Ich studiere "Computer Science", also kenne ich vielleicht "Programmierung" und "Datenstrukturen" und "Algorithmen" und ich verstehe was "Proof Tree" und "Backtracking" und solche Dinge sind. Prolog ist nur eine andere Sprache. Warum ist es so schwierig, es zu lehren und zu lernen? Dies ist eine offene Frage. Ich möchte es nicht auf Stackoverflow fragen, weil es geschlossen wird.

EDIT3: Weil Sie „clpfd“ markiert haben, gibt es noch eine weitere Text:

https://www.metalevel.at/prolog

Es zeigt viele Lösungen mit clp (fd), die ich nicht, dass ich in keinem anderen der Texte gesehen haben zitiert. Es ist nützlich und konsistent, aber wieder unterscheidet es sich von allen anderen Texten. Vielleicht kann ich Ihnen, wenn ich alles lese und lese, was ich finden kann, eine echte Antwort geben.

Aber möchten Sie den Kurs bestehen oder Prolog lernen? Willst du eine gute Note und minimale Anstrengung? Sie müssen zuerst Antworten auf solche Fragen finden!