it-swarm-eu.dev

Wie soll ich mit Lisp anfangen?

Ich programmiere seit Jahren und arbeite mich durch verschiedene Iterationen von Blub (BASIC, Assembler, C, C++, Visual Basic, Java, Ruby in Nr bestimmte Reihenfolge von "Blub-ness") und ich würde gerne LISP lernen. Allerdings habe ich viel Intertia was mit begrenzter Zeit (Familie, Vollzeitjob usw.) und einem angenehmen Glück mit meinem aktuellen Blub (Java).

Meine Frage lautet also, da ich jemand bin, der LISP wirklich lernen möchte, was die ersten Schritte wären, um ein gutes Ergebnis zu erzielen, das die Überlegenheit von LISP in der Webentwicklung demonstriert ? Vielleicht fehlt mir der 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 deine geistige Gesundheit nach Monaden mit Berater D". Ich möchte nur wissen, was die Leute hier in Betracht ziehen Seien Sie ein optimaler Satz von Werten für A, B, C und vielleicht D. Auch einige Diskussionen über den relativen Wert des Lernens einer so mächtigen Sprache, anstatt beispielsweise ein Rails Experte zu werden).

Um noch mehr Details hinzuzufügen, werde ich unter MacOS (oder einer Linux-VM) entwickeln - dank Windows sind keine Windows-basierten Ansätze erforderlich.

Hinweise für diejenigen, die nur nach suchen

Ich werde diese Frage für eine Weile offen halten, damit ich Feedback zu den Vorschlägen geben kann, nachdem ich sie untersucht habe. Wenn Sie gerade vorbeischauen und das Gefühl haben, etwas hinzuzufügen, tun Sie dies bitte. Ich würde mich sehr über Ihr Feedback freuen.

Interessante Links

Angenommen, Sie kommen von einem Java Hintergrund) zu LISP. Mit diesen Links können Sie schnell loslegen.

  1. Verwenden des La Clojure-Plugins von Intellij zur Integration von LISP ( Videocast )
  2. LISP für das Web
  3. Online-Version von Practical Common LISP (c/o Frank Shearar)
  4. Land der LISP a (+ (+ very quirky) game based) Weg rein, macht aber alles so einfach
  5. Installieren Sie Clojure und Sublime 2 unter MacOS eine ausgezeichnete Anleitung für den Einstieg
  6. Schauen Sie sich das Buch Clojure in Action an. Hat für mich gearbeitet.
47
Gary Rowe

Dies widerspricht wahrscheinlich den Empfehlungen der meisten Menschen, aber meiden Sie 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 die Sprache UND den Editor gleichzeitig lernen zu müssen, hat mich wirklich frustriert (zumal Emacs sich so sehr von anderen Tools unterscheidet). Am Ende warf ich es weg und begann mit PLT-Schema (jetzt Racket) , das mit einer vergleichsweise einfachen plattformübergreifenden IDE, einem zentralisierten Paket-Repository und fabelhaft) geliefert wird docs (einschließlich ein Zwischen-Tutorial speziell für die Webentwicklung ). Nachdem ich LISP klar im Griff hatte, kehrte ich zu Emacs zurück und holte EL/CL über Practical Common LISP und Xahs Elisp Guide ab. Grundsätzlich muss aus meiner Sicht ein LISP bekannt sein, 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 Scheme aufgreifen oder Common LISP zuerst über einen anderen Editor lernen können (wahrscheinlich LispWorks persönlich).

Wenn Sie Emacs bereits kennen, dann ist Elisp der natürliche Schritt (obwohl es mir ein Rätsel ist, wie Sie die Verwendung von Emacs genießen würden, ohne vorher Elisp zu kennen).

YMMV natürlich, genau das hat mir geholfen.

Da Ihr aktueller Blub Java ist, könnten Sie wahrscheinlich eine Menge Kilometer aus Clojure , Armed Bear oder Kawa herausholen. Ich habe selbst keinen von ihnen ausprobiert und bin kein Java Typ, aber Clojure wird von anderen Lisperern, die ich kenne, besonders empfohlen. Es scheint die Fähigkeit zu sein, Ihr aktuelles VM und IDE kann beim Lernprozess hilfreich sein.

18
Inaimathi

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 ist ein großartiger Einblick in die Vorgehensweise program.Period !!

Conrad Barski hat ein großartig Tutorial namens Casting SPELs in LISP (SPEL ist sein Akronym für Makros). Es beinhaltet 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 spielweise zu programmieren .

Und aus dem Inhaltsverzeichnis:

  • Erstellen Sie Ihren eigenen Webserver und spielen Sie damit browserbasierte Spiele

Ich weiß jedoch nicht, was dies für Web Entwicklung (wie in HTML-Seiten) mit LISP bedeutet. :) :)

Update - Ich sehe, dass jemand das Buch "Struktur und Interpretation von Computerprogrammen" erwähnt hat, das mich daran erinnerte, dass MIT online gestellt hat, das gesamt SICP Videovorträge von Hal Abelson und Gerald Jay Sussman . Sie haben das Buch vielleicht trocken gefunden, aber die Vorträge sind ausgezeichnet. Obwohl sie auf Schemata basieren, vermitteln sie die grundlegenden Konzepte auch in LISP sehr gut. Es lohnt sich herunterzuladen und anzusehen.

10
Cyclops

Um eine gute grundlegende 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 "schwierig" je nach Betriebssystem unterschiedlich ist. Wie üblich bekommt Windows das kurze Ende des Sticks, aber die Leute haben den schwierigen Teil erledigt und geschrieben (SBCL, Emacs, SLIME).

Sobald dies aus dem Weg ist, verwies Planet LISP auf einen Artikel kürzlich , der beschreibt, wie Hunchentoot und Nginx eingerichtet werden.

Betriebssystemspezifische Bearbeitung: MCLIDE ist möglicherweise ein guter Ausgangspunkt. Ich habe es installiert, hatte aber noch keine Gelegenheit, es tatsächlich zu verwenden, daher kann ich nichts Nützliches dazu sagen. Es sieht auf jeden Fall interessant aus!

Edit: Eclipse hat auch das Plugin Cusp .

8
Frank Shearar

Ich habe bereits viele gute Antworten, aber vorausgesetzt, Sie möchten mit einem LISP kopfüber in die Webentwicklung eintauchen, habe ich noch ein paar Ideen.

Clojure ist das erste LISP, das ich gesehen habe, um wirklich exzellente Full-Stack-Webframeworks zu haben, die für die Hauptsendezeit bereit sind.

  • Noir ist ein solides Webframework mit Routing, Templating usw., ähnlich wie Sinatra, aber etwas funktionsreicher. Es wird Ring verwendet, was im Grunde Clojures Äquivalent zu Rack in Ruby ist.
  • Korma ist eine SQL-Abstraktionsbibliothek, die sich sehr gut mit Noir paart.
  • Pinot ist ein clientseitiges Framework, das vollständig in ClojureScript geschrieben wurde und uns zu Folgendem führt:
  • Clojurescript ist ein Compiler für Clojure, der auf Javascript abzielt.

Wenn Sie es nicht bemerkt haben, habe ich nur den gesamten Webstack abgedeckt und es ist alles in Clojure geschrieben.

Ich finde es etwas einfacher, mit Clojure zu beginnen als mit Common LISP, mit weitaus besserer Unterstützung für Funktionen/Bibliotheken als Scheme.

Wenn Sie von einem Java Hintergrund) kommen, hat dies den zusätzlichen Vorteil, dass Sie auf der JVM ausgeführt werden, wodurch Sie auf die gesamte Java stdlib] zugreifen können wenn du es brauchst.

Die verfügbare Dokumentation ist in Arbeit, ebenso wie die Frameworks selbst. Aber es gibt ein ziemlich gutes Tutorial genau hier.

Was die Redakteure angeht ... 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 zu meinem bevorzugten Editor wird). Ich weiß, dass ich ein wenig LISP-Magie verpasse, wenn ich keine stärker integrierte Umgebung verwende, aber ich bin froh, ⌘-Tab zu drücken, um zwischen meinem Editor und REPL zu wechseln. Ihr Kilometerstand kann variieren.

Wenn Sie möchten, dass ein Buch Sie ankurbelt, empfehle ich Programming Clojure von Stuart Halloway und Aaron Bedra. Die 2. Ausgabe ist gerade von PragProg herausgekommen, also aktuell.

Viel Spaß beim Lispeln!

6
Jason Lewis

Ein anderer Kommentator, Inaimathi , hat dieses Buch vor einigen Tagen empfohlen: The Little Schemer

Ich habe es heute erhalten und kann als jemand sagen, der über eine sehr umfangreiche Bibliothek von Programmierbüchern verfügt, die über viele Jahre erworben wurden, dass ich vielleicht nur ein Kapitel gelesen habe, aber ich werde definitiv eine gebundene Version davon brauchen. Es liest sich wie das Tao Te Ching, viele kleine Schnipsel göttlicher Weisheit in Bezug auf die Sprache. Es mag Schema sagen, aber es wurde ursprünglich "The Little LISPer" genannt. Die Sprachen auf der Ebene, über die es spricht, sind ausreichend ähnlich, um als eine Sprache unterrichtet zu werden.

Es ist kein fortgeschrittener Text, sondern hat die Mission, die Prinzipien der Sprache zu vermitteln und wofür sie wirklich ist, wie man so denkt. Ich glaube, es wäre ein ausgezeichneter Starter für LISP.

NB. The Programmer Competency Matrix erwähnt dieses Buch tatsächlich in der obersten Kompetenzstufe der Dinge, nach denen gesucht werden muss. (siehe Abschnitt Bücher)

5
Orbling

Ein sehr guter Ort, um LISP zu verwenden, ist der Emacs-Editor, in dem fast alles neu definiert werden kann. Wenn Sie möchten, dass der Schlüssel 'e' die Uhrzeit einfügt, schreiben Sie einfach ein kleines LISP-Snippet, um die Zeichenfolge zu generieren, und binden Sie sie an den Schlüssel e. Erledigt.

Auf diese Weise können Sie auch das, was Sie täglich lernen, tatsächlich VERWENDEN, wenn Sie tagsüber einen einfachen Editor verwenden.

4
user1249

Wenn Sie auf einem Mac entwickeln, sollten Sie Clozure CL ausprobieren. Es wird mit einem IDE, das Emacs-kompatible Tastenanschläge enthält, und einer Brücke zu Objective C, mit der Sie Cocoa-Anwendungen schreiben können) geliefert.

Außerdem habe ich Practical Common LISP gelesen, aber festgestellt, dass Successful LISP ebenfalls hilfreich ist.

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.

3
Larry Coleman

Ich habe eine Kopie von ANSI Common LISP hier an meinem Schreibtisch. Ich nehme es alle paar Jahre auf und mache ein paar Kapitel durch, dann bleibe ich bei ein paar Übungen und es rutscht die Prioritätenliste runter. Das sagt dir wahrscheinlich mehr über mich als das Buch. Das Buch scheint völlig kompetent ...

2
glenatron