2010-01-01 8 views
8

Meine Firma hat ein Projekt in Prolog laufen und ich möchte einige Dinge darüber klären, wie man es lernt. Ich weiß, dass Prolog anders ist. Es sollte nicht wie jede andere Sprache gelernt werden.Schnell in Betrieb gehen in Prolog

Nachdem ich das gesagt habe, und in Anbetracht der Tatsache, dass ich noch kein Prolog-Buch in die Hände bekam, gibt es ein Buch oder eine Online-Ressource, wo ich Prolog lernen kann, wie wir C/C++ lernen? Was ich meine ist, nur um in C/C++ in Betrieb zu sein, müssen Sie nur die Struktur des Programms kennen, wie main { }, loops, conditions, branches, und einige functions, die Sie verwenden können, um grundlegende Programme in C/C++ zu schreiben .

Nur so kann ich Prolog lernen und gibt es irgendein Buch, das mir nur eine Idee gibt, wie man in Prolog programmiert? (Grundlagen, Schleifen, wie man Bedingungen implementiert, Programmstruktur, was ist das Prädikat? Wie man es benutzt? Wie man es definiert? und so weiter ...).

+0

Ich will die Party nicht verderben, aber überlege, was Peter Norvig in seinem Blog über [Teach Yourself Programming in Ten Years] geschrieben hat (http://norvig.com/21-days.html). – repeat

Antwort

18

Wenn Sie nach einem Buch sind, dann kann ich „The Art of Prolog“ empfehlen: http://books.google.com/books?id=w-XjuvpOrjMC&lpg=PP1&dq=the%20art%20of%20prolog&pg=PP1#v=onepage&q=&f=false

kommend Prolog von so etwas wie C/C++ ist nicht nur eine Frage der das Erlernen einer Programmiersprache. Es ist eine ganz andere Art zu denken über die Programmierung.

Prolog ist Fragen über den Computer Fragen (oder "Abfragen", wenn Sie möchten). Die Berechnung ist fast ein Nebeneffekt des Computers, der versucht, Ihre Frage zu beantworten. Es gibt keine sinnvolle Entsprechung zu Schleifen oder Bedingungen, weil ein Prolog-Programmierer nicht so denken würde.

Ein gutes Prolog-Programm sieht aus wie eine Beschreibung des Problems, dass Sie versuchen, in rekursiven Fälle zu lösen zerlegt und Subprobleme eher als Listen von Anweisungen in Funktionen oder Klassen organisiert.

Der beste Weg, um Prolog zu lernen, ist, alle bisherigen Programmiererfahrungen beiseite zu legen. Wenn man über C und C++ nachdenkt, wird Prolog schwerer zu erlernen und zu benutzen sein. Versuchen Sie, den Verstand eines Anfängers zu übernehmen und vielleicht einen Ansatz, der mehr wie ein Algebratist als ein Programmierer ist.

+0

Vielen Dank für einen interessanten Vorschlag. – JPro

+2

+1 Im Allgemeinen denke ich, dass diese Antwort hilfreich ist, aber ich würde nicht über Bord gehen und sagen, dass ich alle anderen Programmiererfahrungen komplett vergessen habe. Es ist möglich, Code zu schreiben, der sich in Prolog zwingend verhält (zB mit Hilfe von Schnitten) und manchmal ist es sinnvoll, dies zu tun. Außerdem sollten Sie immer über die Komplexität der von Ihnen erstellten Algorithmen nachdenken. Sie müssen immer noch darüber nachdenken, was die Maschine tatsächlich tun wird, wenn Sie eine Frage stellen. Ein vorheriges Verständnis von Algorithmen und Komplexität wird hier nützlich sein. – nedned

6

Was ist los mit Learn Prolog Now, die in der Regel die Top-Empfehlung jedes Mal ist, wenn diese Art von Frage gestellt wird?

Es kann nicht geben Sie genau die Terminologie, die Sie wollen - ich glaube, es erwähnt nicht einmal "Prädikat" (verwendet "Fakten, Regeln und Abfragen" statt) oder "Schleifen" (es zeigt nur, wie zu verwenden Rekursion statt) - aber die Terminologie richtig zu machen, sobald die Konzepte klar sind, sollte einfach, schnell und einfach sein, und "Learn Prolog Now" scheint einen guten Job dabei zu machen, die Konzepte klar zu machen.

+0

Danke, ich werde mit diesem beginnen und ich erwarte mehr Antworten. – JPro

5

Als Ergänzung zu den Prolog-Tutorials und in den anderen Antworten erwähnten Lehrbüchern, würde ich vorschlagen, einen kurzen Blick auf diesem kurzen Dokument mit:

Prolog for Imperative Programmers

ich denke, es Teil ist von dem, was Sie suchen zum. Es wird Ihnen nicht Prolog beibringen, aber es wird Ihnen helfen, die Lücke zum Verständnis von Prolog zu schließen. Es beschreibt die Grundlagen von Prolog mit einer Terminologie, die erfahrene Nicht-Prolog-Programmierer verstehen würden. Zum Beispiel zeigt es Ihnen Kontrollstrukturen in Prolog, d.h. Sequenz, Selektion und Wiederholung. Es wird jedoch davon ausgegangen, dass Sie bereits mit dem Lernen von Prolog begonnen haben.

Es ist gut, wenn Sie etwas Neues in Bezug auf etwas, das Sie bereits wissen, verstehen möchten. Mit diesem Wissen besteht jedoch das Risiko, dass Sie C-Code in der Prolog-Syntax schreiben können. Viel Glück!

+0

Vielen Dank dafür. – JPro