Ich programmiere seit Jahren und arbeite mich durch verschiedene Iterationen von Blub (BASIC, Assembler, C, C ++, Visual Basic, Java, Ruby in keiner bestimmten Reihenfolge von "Blub-ness") und möchte lernen Lispeln. Ich habe jedoch viel Schwung, was mit begrenzter Zeit (Familie, Vollzeitjob usw.) und einem angenehmen Glück mit meinem aktuellen Blub (Java) verbunden ist.
Meine Frage ist also, dass ich jemand bin, der wirklich gerne Lisp lernen möchte. Was wären die ersten Schritte, um ein gutes Ergebnis zu erzielen, das die Überlegenheit von Lisp in der Webentwicklung demonstriert ? Vielleicht verpasse ich den Punkt, aber so würde ich zunächst die Anwendung meines Lisp-Wissens sehen.
Ich denke "benutze Dialekt A, benutze IDE B, folge den Anweisungen auf Seite C, frage deinen Verstand nach Monaden mit Ratgeber D". Ich möchte nur wissen, was die Leute hier als einen optimalen Satz von Werten für A, B, C und vielleicht D ansehen. Auch einige Diskussionen über den relativen Wert des Lernens einer so mächtigen Sprache im Gegensatz zum Beispiel, ein Rail zu werden Experte.
Um ein paar Details hinzuzufügen, werde ich auf MacOS (oder einer Linux-VM) entwickeln - danke, dass keine Windows-basierten Ansätze erforderlich sind.
Notizen für diejenigen, die nur browsen
Ich werde diese Frage noch eine Weile offen halten, damit ich Feedback zu den Vorschlägen geben kann, nachdem ich sie untersucht habe. Wenn Sie gerade suchen und das Gefühl haben, etwas hinzuzufügen, tun Sie dies bitte. Ich würde mich sehr über Ihr Feedback freuen.
Interessante Links
Vorausgesetzt, Sie kommen mit einem Java-Hintergrund zu Lisp. Mit diesen Links können Sie schnell loslegen.
- Verwendung des La Clojure-Plugins von Intellij zur Integration von Lisp ( Videocast )
- Lisp für das Web
- Online-Version von Practical Common Lisp (c / o Frank Shearar)
- Land of Lisp einen
(+ (+ very quirky) game based)
Weg hinein, macht es aber alles so einfach - Installieren Sie Clojure und Sublime 2 auf MacOS eine ausgezeichnete Startleitfaden
- Schauen Sie sich das Buch Clojure in Action an . Hat für mich gearbeitet.
quelle
Antworten:
Dies steht wahrscheinlich im Widerspruch zu den Empfehlungen der meisten Menschen, meidet jedoch zunächst Emacs, es sei denn, Sie wissen es bereits. Besonders, wenn Sie an moderne IDEs / Editoren gewöhnt sind.
Ich spreche aus Erfahrung. Ich habe versucht, mit Emacs zu beginnen, aber gleichzeitig die Sprache UND den Editor lernen zu müssen, hat mich wirklich frustriert (zumal Emacs sich so von anderen Tools unterscheidet). Am Ende war ich mit PLT Scheme (jetzt Racket) beschäftigt, das mit einer vergleichsweise einfachen plattformübergreifenden IDE, einem zentralen Paket-Repository und hervorragenden Dokumenten (einschließlich eines Tutorials für Fortgeschrittene, das speziell auf die Webentwicklung abzielt ) ausgestattet ist. Nachdem ich Lisp in den Griff bekommen hatte, kehrte ich zu Emacs zurück und holte EL / CL über Practical Common Lisp und Xahs Elisp Guide ab. Grundsätzlich, wie ich es sehe, müssen Sie ein Lisp kennen, bevor Sie Emacs effektiv einsetzen können, und Sie müssen Emacs kennen, um mit CL / Elisp sehr effektiv zu sein. Dies bedeutet, dass Sie entweder das Schema abrufen oder Common Lisp zuerst mit einem anderen Editor (wahrscheinlich LispWorks Personal) lernen können.
Wenn du Emacs bereits kennst, dann ist Elisp der natürliche Schritt (obwohl es mir ein Rätsel ist, wie du Emacs verwenden würdest, ohne dass ich Elisp zuerst kenne).
YMMV natürlich, das ist genau das, was mir geholfen hat.
Da es sich bei Ihrem aktuellen Blub um Java handelt, könnten Sie wahrscheinlich eine Menge Meilen mit Clojure , Armed Bear oder Kawa erzielen . Ich habe keinen von ihnen selbst ausprobiert, da ich kein Java-Typ bin, aber Clojure wird ausdrücklich von anderen Lispers empfohlen, die ich kenne. Es scheint, als ob die Fähigkeit, Ihre aktuelle VM und IDE beizubehalten, beim Lernprozess hilfreich sein könnte.
quelle
C-x C-c
) zu schließen. Ich liebe Emacs zu Tode, und so ziemlich leben in es jetzt, aber erkennen , dass auf den ersten, Sie kämpfen Jahre Muskelgedächtnis sage IhnenC-s
istSave
, nicht ,Search
und dassUndo
istC-z
. Ich werde diese Art von Frustration nicht jemandem empfehlen, der Lisp lernen möchte. Lerne zuerst die Sprache, merke, dass du sie liebst, und kämpfe dann mit einem klaren Ziel gegen deine Hände.Nun, Sie können zwei Vögel schlagen , indem Sie SICP lesen : Einer lernt LISP (ich meine, Schema ist ein Dialekt von Lisp) und der andere gibt einen großartigen Einblick in das Programmieren.
quelle
Conrad Barski hat ein großartiges Tutorial namens Casting SPELs in Lisp (SPEL ist sein Akronym für Makros). Es handelt sich um ein einfaches Abenteuerspiel und springt direkt in Lisp-Makros. Er hat auch an einem Einführungsbuch gearbeitet, das jetzt erhältlich ist unter:
Lerne Lisp, ein Spiel nach dem anderen zu programmieren .
Und aus dem Inhaltsverzeichnis:
Ich weiß nicht , was das für Web impliziert Entwicklung (wie in HTML - Seiten) mit Lisp, aber. :)
Update - Ich sehe, dass jemand das Buch "Struktur und Interpretation von Computerprogrammen" erwähnte, das mich daran erinnerte, dass MIT die gesamten SICP-Videovorträge von Hal Abelson und Gerald Jay Sussman online gestellt hat . Sie haben das Buch vielleicht trocken gefunden, aber die Vorträge sind ausgezeichnet. Obwohl sie auf einem Schema basieren, vermitteln sie die grundlegenden Konzepte auch in Lisp sehr gut. Das Herunterladen und Anschauen lohnt sich.
quelle
Um eine gute Einführung in die Sprache zu erhalten, lesen Sie Peter Seibels Practical Common Lisp . Das Buch ist ausgezeichnet.
Das Einrichten von Emacs und SLIME kann für Neulinge schwierig sein, wobei die Größe von "tricky" abhängig von Ihrem Betriebssystem variiert. Wie üblich bekommt Windows das kurze Ende des Sticks, aber die Leute haben den schwierigen Teil erledigt und ihn geschrieben (SBCL, Emacs, SLIME).
Sobald dies nicht mehr möglich ist, verwies Planet Lisp auf einen Artikel, in dem kürzlich die Einrichtung von Hunchentoot und Nginx beschrieben wurde.
Betriebssystemspezifische Bearbeitung: MCLIDE ist möglicherweise ein guter Ausgangspunkt. Ich habe es installiert, hatte aber keine Gelegenheit, es tatsächlich zu verwenden, daher kann ich nichts Nützliches dazu sagen. Es sieht auf jeden Fall interessant aus!
Bearbeiten: Eclipse hat auch das Cusp- Plugin.
quelle
Bereits viele gute Antworten, aber wenn Sie mit einem Lisp direkt in die Webentwicklung eintauchen möchten, habe ich noch ein paar Ideen.
Clojure ist das erste Lisp, das ich gesehen habe, um wirklich ausgezeichnete Full-Stack-Web-Frameworks zu haben, die zur Hauptsendezeit bereit sind.
Wenn Sie es nicht bemerkt haben, habe ich nur den gesamten Webstapel abgedeckt und alles ist in Clojure geschrieben.
Ich finde, dass Clojure ein bisschen einfacher ist, als Common Lisp, mit weitaus besserer Unterstützung für Feature-Sets / Bibliotheken als Scheme.
Wenn Sie überhaupt aus einem Java-Hintergrund stammen, hat dies den zusätzlichen Vorteil, dass Sie auf der JVM ausgeführt werden können, sodass Sie bei Bedarf auf die gesamte Java-Stdlib zugreifen können.
Die verfügbare Dokumentation ist in Arbeit, ebenso wie die Frameworks selbst. Aber hier gibt es ein ziemlich gutes Tutorial .
Für Redakteure: Wenn Sie mit vim vertraut sind, können Sie vim mit SLIMV verwenden. Wenn Sie Emacs mögen, ist Emacs / SLIME in Ordnung. Es gibt ziemlich gute Eclipse- und NetBeans-Unterstützung für Clojure (oder wie mir gesagt wurde), aber ich verwende im Allgemeinen TextMate (obwohl Sublime Text 2 schnell mein bevorzugter Editor wird). Ich weiß, dass ich ein wenig Lisp-Magie verpasse, ohne eine stärker integrierte Umgebung zu verwenden, aber ich freue mich, ⌘-Tab zu drücken, um zwischen meinem Editor und REPL zu wechseln. Ihr Kilometerstand kann variieren.
Wenn Sie ein Buch haben möchten, das Ihnen den Anfang macht, empfehle ich Programming Clojure von Stuart Halloway und Aaron Bedra. Die 2. Ausgabe ist gerade von PragProg erschienen , ist also auf dem neuesten Stand.
Fröhliches Lisping!
quelle
Ein anderer Kommentator, Inaimathi , hat dieses Buch vor ein paar Tagen empfohlen: Der kleine Schemer
Erhielt es heute und ich kann als jemand, der über eine sehr umfangreiche Bibliothek von über viele Jahre erworbenen Programmbüchern verfügt, sagen, dass ich möglicherweise nur ein Kapitel gelesen habe, aber auf jeden Fall eine gebundene Version davon brauche. Es liest sich wie das Tao Te Ching, viele kleine Schnipsel göttlicher Weisheit in Bezug auf die Sprache. Es mag Scheme heißen, aber ursprünglich hieß es "The Little LISPer", die Sprachen auf der Ebene, die es behandelt, sind ausreichend ähnlich, um als eine unterrichtet zu werden.
Es ist kein fortgeschrittener Text, sondern hat die Mission, die Prinzipien der Sprache zu vermitteln und wofür es wirklich ist, wie man so denkt. Ich glaube, es wäre ein ausgezeichneter Starter für LISP.
NB. Die Programmierer-Kompetenzmatrix erwähnt dieses Buch tatsächlich in der höchsten Kompetenzstufe der Dinge, nach denen gesucht werden soll. (siehe Abschnitt Bücher)
quelle
Ein sehr guter Einstieg in Lisp ist der Emacs-Editor, mit dem Sie so gut wie alles neu definieren können. Sie möchten, dass der 'e'-Schlüssel die Uhrzeit einfügt. Schreiben Sie einfach ein kleines Lisp-Snippet, um den String zu generieren und an den e-Schlüssel zu binden. Getan.
Auf diese Weise können Sie auch tatsächlich das NUTZEN, was Sie in einer täglichen Umgebung gelernt haben, wenn Sie tagsüber einen einfachen Editor verwenden.
quelle
Wenn Sie auf einem Mac entwickeln, können Sie Clozure CL ausprobieren . Es wird mit einer IDE geliefert, die Emacs-kompatible Tastatureingaben enthält, und es gibt eine Brücke zu Objective C, über die Sie Cocoa-Anwendungen schreiben können.
Außerdem habe ich Practical Common Lisp gelesen, aber auch Successful Lisp als hilfreich empfunden.
Schließlich wird etwas Geduld von Ihrer Seite belohnt. Produktivität und kleine Siege werden ziemlich schnell kommen, aber der große Gewinn kann eine Weile dauern.
quelle
Ich habe eine Kopie von ANSI Common Lisp hier an meinem Schreibtisch. Ich nehme es alle paar Jahre auf und gehe ein paar Kapitel durch, dann bleibe ich bei ein paar Übungen und es rutscht in der Prioritätenliste runter. Das sagt dir wahrscheinlich mehr über mich als das Buch. Das Buch scheint völlig kompetent zu sein ...
quelle