Ich bin ein C ++ - Programmierer, der versucht, Common Lisp zu lernen. Ich habe mir einige Bücher wie Land of Lisp angesehen und zahlreiche Online-Artikel über die verschiedenen Tugenden von Lisp gelesen. Ich brauche jedoch einen Rat.
Fast alles, was ich über Common Lisp gelesen habe, hat damit zu tun, wie erstaunlich es ist und wie erstaunlich schnell man Dinge damit erledigen kann und wie es vor 30 Jahren erstaunlich viele Probleme mit modernen Programmiersprachen gelöst hat. Außerdem, wie erstaunlich Makros sind und wie jedes Programmierparadigma (OO, funktional, akteursbasiert oder was auch immer usw.) in Lisp verwendet werden kann und wie Listen die ultimative Datenstruktur darstellen. Grundsätzlich behandelt man Lisp wie eine Forschungssprache und sagt, wie anders und revolutionär es ist.
Und all das Zeug ist wahrscheinlich wahr, aber das Problem ist, dass ich nicht viel gesehen habe, wie man praktische Dinge wie das Lesen einer Datei und das Aufteilen in Wörter und das Verarbeiten daran macht. Ich bin nicht daran interessiert, Common Lisp zu lernen, um Common Lisp zu lernen, sondern um das, was ich früher in C ++ gemacht habe, schneller und mit weniger Fehlern zu erledigen.
Meine Frage ist also, was die beste Ressource ist (sei es eine Website, ein Buch, irgendetwas), die sich darauf konzentriert, zu lehren, wie man Common Lisp verwendet, um allgemeine Programmieraufgaben wie zu erledigen
- So lesen Sie Dateien
- So lesen Sie eine Datei, ersetzen Wörter in der Datei und schreiben das Ergebnis zurück in die Datei
- Iterieren Sie die Dateien in einem Verzeichnis und anderen Dateien
- Interagiere mit einer SQL-Datenbank
- Kommunikation über Steckdosen
- Threading für Sachen wie einen Webserver
- Erstellen Sie GUIs
- Führen Sie Operationen an Binärdateien aus
- Schreiben Sie einen Parser (kein Interpreter für Lisp in Lisp, was meines Wissens 5 Zeilen Lisp entspricht).
- Interagiere mit dem Betriebssystem (dh in C oder C ++ geschriebene Dinge), um Dinge zu tun, die Lisp nicht nativ tun kann
- Wie schreibe ich Lisp-Erweiterungen in C (ist das möglich?)
- Betten Sie einen Lua-Dolmetscher ein (ist das möglich?)
Und auch in einem weniger unmittelbar praktischen Hinweis, wie allgemeine Datenstrukturen in Lisp wie Heap, Stack, binärer Suchbaum usw. implementiert werden. Dies kann jedoch nur die Listenoperationen von Lisp wie car
und cdr
auf die richtige Weise verwenden. Ich weiß es nicht.
Ich bezweifle sehr, dass all dies (mit der unwahrscheinlichen Ausnahme der letzten beiden in der Liste) mit Lisp unmöglich ist oder die Leute es nicht so sehr lieben würden. Und das oben erwähnte Zeug, das ich gelesen habe, erwähnt eine Menge realer Software, die in Lisp geschrieben wurde (Yahoo! Web Store fällt mir ein).
Nachdem ich zuvor in einer ( der? ) Imperativen Sprache programmiert habe , bin ich bestrebt, das neue Wissen zu nutzen, das ich zum Schreiben realer Anwendungen erhalte. Was ist der schnellste Weg, um das Schreiben praktischer Software mit Lisp zu lernen?
Übrigens habe ich Peter Seibels praktisches gemeinsames Lisp gesehen, aber nach dem Inhaltsverzeichnis berührt es nur einige der Dinge, für die ich lernen möchte, Lisp zu verwenden.
Noch eine Frage, wenn ich darf (Entschuldigung, wenn hier zwei Fragen zu einer zusammengefasst werden), wo finde ich einen Verweis auf die Funktionen und Dinge von Lisp?
Und ich möchte Lisp wirklich mögen.