Wo erfahren Sie, wie praktisch verwenden Common Lisp
Ich bin ein C++ - Programmierer, die versuchen zu lernen, Common Lisp. Ich habe mir einige Bücher wie Land of Lisp und Lesen Sie die zahlreichen online-Artikel über die verschiedenen Tugenden von Lisp. Allerdings brauche ich einige Ratschläge.
Fast alles, was ich gelesen habe über Common Lisp zu tun, wie erstaunlich es ist, und wie verblüffend schnell Sie können Sachen erledigt werden und wie es erstaunlicherweise löste viele Probleme mit modernen Programmiersprachen vor 30 Jahren. Auch erstaunlich, wie Makros sind, und wie jeder jeden Programmier-Paradigma (OO, funktional, Schauspieler basiert oder was auch immer, etc) kann verwendet werden, in Lisp, und wie die Listen sind das ultimative Daten-Struktur. Im Grunde der Behandlung von Lisp wie eine Forschung zu Sprache und zu sagen, wie anders und Revolutionär es ist.
Und all das Zeug ist wohl wahr, aber das problem ist ich habe nicht viel gesehen, Sachen wie zu tun, praktische Dinge, wie das Lesen einer Datei und teilen Sie es in Worte und einige Verarbeitung auf. Ich bin nicht interessiert, lernen Common Lisp zum Wohle des Lernens Common Lisp, aber für den sake zu bekommen, was, die ich verwendet, um zu tun, die in C++ schneller und mit weniger Fehlern.
Also meine Frage ist was ist die beste Ressource, sei es eine website, ein Buch, nichts), dass konzentriert sich auf die lehren, wie zu verwenden Common Lisp zu tun häufige Aufgaben bei der Programmierung von wie
- Wie das Lesen von Dateien
- Wie zu Lesen, eine Datei, ersetzen Sie die Wörter in der Datei und schreiben das Ergebnis wieder in die Datei
- Durchlaufen der Dateien in einem Verzeichnis und andere Dateisystem-Zeug
- Interaktion mit einer SQL-db
- Tun, die Kommunikation über sockets
- Threading für Sachen wie ein webserver
- Erstellen GUIs
- Operationen auf Binär-Dateien
- Schreiben Sie einen parser (nicht ein interpreter für Lisp in Lisp, die so wie ich das verstehe, ist wie 5 Zeilen Lisp)
- Interaktion mit dem Betriebssystem (also Sachen geschrieben, die in C oder C++), um Dinge zu tun Lisp kann nicht nativ
- Wie Sie schreiben, Lisp-Erweiterungen in C (ist das möglich?)
- Einbetten von lua-interpreter (ist das möglich?)
Und auch auf eine weniger unmittelbar praktische Hinweis, wie das umzusetzen, gemeinsame Datenstrukturen in lisp wie ein heap, stack, binary search tree, etc. Aber das kann nur mithilfe von Lisp ist die Liste von Operationen wie car
und cdr
in der richtigen Weise. Ich weiß es nicht.
Ich bezweifle stark, dass jede dieser (mit der unwahrscheinlichen Ausnahme der letzten beiden in der Liste), ist es unmöglich mit Lisp oder die Menschen würden sich nicht Liebe es so sehr. Und die oben genannten Sachen, die ich gelesen habe erwähnt, viele real-world-software, geschrieben in Lisp (Yahoo! web-Shop in den Sinn kommt).
Jedoch, dass die Programmierung in einem (die?) imperative Sprache vor, ich bin gespannt zu bekommen, über welche neuen Kenntnisse, die ich Schreibe real-world Anwendungen. Also, was ist der Schnellste Weg zu lernen, schreiben praktische software, mit Lisp?
Durch die Art und Weise, ich habe gesehen, Peter Seibel ' s Practical Common Lisp aber die Beurteilung durch das Inhaltsverzeichnis, es berührt nur auf einige der Dinge, die ich möchte lernen, Lisp zu tun.
Noch eine Frage, wenn ich darf (sorry, wenn dies ist die Kombination von zwei Fragen in einer), wo finde ich einen Verweis auf Lisp-Funktionen und so?
Und ich wirklich wollen wie Lisp.
InformationsquelleAutor der Frage NewLisper | 2011-08-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde vorschlagen, das Lesen 'Practical Common Lisp', da es schon Antworten auf einige deiner Fragen.
Gibt es wahrscheinlich drei bis vier Bücher, die Sie Lesen sollten,:
Common Lisp Reference
Handbücher
Nun ist die nächste Sache, die Sie sollten überprüfen, ist im Handbuch Ihres Lisp-Implementierung. Es beschreibt eine Menge von spezifischen Erweiterungen: networking, threads, ...
Dokumentation für Common Lisp-Implementierungen:
SCHLEIM (der Emacs-basierten Lisp-IDE) hat eine SLIME-Benutzerhandbuch.
Dokumentation für Common Lisp-Bibliotheken:
Bibliotheken
Bibliotheken verwenden
Nun einen Blick auf einige Ihrer Punkte:
Sehen Sie die Dateien und streams Wörterbuch in der HyperSpec. MIT-OFFENEN-STREAM, LESEN, LESEN-LINE, READ-CHAR READ-BYTE -, READ-SEQUENZ, ...
Oben verwenden. Siehe auch: SCHREIB-und Verwandte.
Siehe oben. VERZEICHNIS, Pfadnamen, ...
Nutzen zum Beispiel den CLSQL-Bibliothek.
Finden Sie in der Bedienungsanleitung Ihres Lisp oder verwenden Sie eine der tragbare Bibliotheken. Sehen Quicklisp.
Finden Sie in der Bedienungsanleitung Ihres Lisp oder verwenden Sie eine der tragbare Bibliotheken. Sehen Quicklisp.
Hängt. Sehen Quicklisp oder eine Implementierung spezifische Bibliothek.
Sehen Hyperspec für Datei-und stream-Operationen. WRITE-BYTE -, READ-BYTE. Öffnen Sie einen stream als binären Datenstrom.
Verwenden Sie eines der vorhandenen tools. Untersuchung bestehender Parser. Es gibt viele Parser geschrieben in Lisp, aber nicht viel in Bücher über das (andere als Natürliche Sprache-Parser, die beschrieben werden in der KI-Literatur).
Hängt. Sehen Quicklisp oder eine Implementierung spezifische Bibliothek.
Hängt. Sehen Quicklisp oder eine Implementierung spezifische Bibliothek. -> FFI
Letzter Tipp: Lesen Sie Codes von anderen Autoren.
Studie andere Lisp-code. Es gibt genug sehr vielfältig Lisp-code gibt. Von web-Servern, um Musik-Komposition software.
InformationsquelleAutor der Antwort Rainer Joswig
Check-out Cliki die Common Lisp wiki es enthält eine Liste der Bibliotheken für Common Lisp, die Ihnen helfen, alle Ihre Artikel.
Auch, Sie gehen zu wollen, heraus zu überprüfen die Common Lisp-Kochbuch (es gibt auch einen mehr aktualisierte version). Es hat eine Reihe von code, die für Allgemeine Aufgaben wie beim Lesen einer Datei eine Zeile zu einem Zeitpunktund Foreign Function Interfaces für die Interaktion mit Bibliotheken, die in C geschrieben.
Können Sie die Erstellung von Erweiterungen für Lisp in C abhängig, welche Implementierung Sie verwenden. Emacs-Lisp können Sie zum Beispiel tun, wenn er nicht Common Lisp. In der Regel, was Sie tun möchten, schreiben Sie den code in Common Lisp und optimieren Sie es so viel wie möglich mit verschiedenen Lisp-compiler, die Deklarationen, oder die andere Methode, wo Sie einen foreign function interface.
Threading hängt davon ab, welche Implementierung Sie verwenden, aber ich denke, die meisten von Ihnen haben threads jetzt.
Hunchentoot ist eines der besten Lisp, web-Servern und ist ziemlich leicht zu bekommen begann mit. Sie müssen nicht zu schreiben threading-code selbst, Sie müssen nur schreiben die HTTP-request-handler-Funktionen.
Jemand kompiliert eine Liste der GUI-Optionen für Lisp:
InformationsquelleAutor der Antwort Rudolf Olah