Was ist der beste Weg, um LISP zu lernen? [geschlossen]


167

Ich programmiere seit ein paar Jahren in Python, PHP, Java und C und habe gerade Hacker und Maler gelesen, also würde ich gerne LISP ausprobieren!

Ich verstehe, dass es völlig anders ist als das, was ich weiß und dass es nicht einfach sein wird. Ich denke auch (bitte korrigieren Sie mich, wenn ich falsch liege), dass LISP viel weniger Community und Entwicklung bietet. Meine Frage ist also: Was ist der beste Weg, um LISP zu lernen?

Es würde mir nichts ausmachen, Bücher zu kaufen oder etwas Zeit zu investieren. Ich möchte nur nicht, dass es verschwendet wird.

Die "letzte" Idee wäre, LISP für die Webentwicklung zu verwenden, und ich weiß, dass dies nicht so häufig vorkommt. Ich weiß, dass es gut ist, mein Lernen zu planen, bevor Sie das erste Buch oder Tutorial auswählen und viel Zeit mit etwas verbringen, das möglicherweise nicht funktioniert sei der beste Weg!

Vielen Dank für Ihre Antworten!

edit: Ich habe Practical Common Lisp gelesen und war: ... lang, hart, interessant und hat mich definitiv in Lisp ins Rollen gebracht, danach habe ich den kleinen Schema gelesen und es war kurz, lustig und sehr, sehr gut für meine gesamte Programmierung. Meine Empfehlung wäre also, zuerst den kleinen Intriganten zu lesen und dann (es ist ein paar Stunden und es lohnt sich) zu entscheiden, ob Lisp (oder Schema oder welcher Dialekt auch immer) nicht das ist, wonach Sie suchen, Sie werden trotzdem viel Spaß haben neue Denkweise über Rekursion!


Common Lisp: Ein interaktiver Ansatz . Altes (1992) Buch von Stuart Shapiro. Früher nur toter Baum, in den letzten Jahren jedoch in elektronischer Form erhältlich .
Kaz

Common LISPCraft von Robert Wilensky ist ein interessantes, wenn auch altes Buch. Ich habe eine Hardcopy vom 1986.
Kaz

Antworten:


114

Versuchen Sie, Practical Common Lisp von Peter Seibel zu lesen .


2
Ich glaube, ich habe dieses Buch auf meinem Campus gesehen ... also werde es jetzt abholen!
DFectuoso

2
Vergessen Sie nicht die REPL! Ich habe nicht verwendet, was ich über LISP gelernt habe, aber es hat mich zu einem viel besseren Programmierer in allen anderen Sprachen gemacht.
Robert K

1
Ich kann es nur empfehlen, dies war das Buch, das wir für meine KI-Klasse verwendet haben, um uns LISP für unsere Projekte beizubringen.
Hallo und

6
DFectuoso - es ist nicht nur ein Link über das Buch, es ist das Buch. Beginnen Sie, das Buch online zu lesen
Aaron

2
Ja, ich weiß, aber ich lese nicht gerne auf dem Monitor ... trotzdem habe ich dies als Antwort ausgewählt, weil ich angefangen habe, das Buch zu lesen, und es ist gut (ich bin über die Hälfte davon und lese dann den kleinen Planer schlecht, werde dies bearbeiten, wenn Ich beende beide = 0)
DFectuoso

76

Mein persönlicher Favorit ist Abelson & Sussman Struktur und Interpretation von Computerprogrammen . Es verwendet Scheme, einen schönen und sauberen Dialekt von Lisp.

Wenn Sie einen praktischeren Ansatz bevorzugen, sollten Sie vielleicht ein Lisp-Framework für das Webdesign auswählen (ich habe keine Ahnung, ob es ein solches Biest gibt) und sofort einsteigen.


1
Paul Graham hat ein lisp-Webframework namens arc.
Graywh

15
Ich glaube, Arc ist ein eigener Lisp-Dialekt, nicht nur ein Rahmen. paulgraham.com/arc.html
michiakig

55

Vielleicht möchten Sie mit The Little Schemer als Aufwärmübung beginnen. Es ist kein praktisches Buch über das Schreiben von Lisp-Produktionsprogrammen, aber es ist ein großartiges Buch, um zu lernen, wie man in Lisp denkt .


Das scheint eine gute und schnelle Lektüre zu sein! TY
DFectuoso

5
Ich würde eher nicht zustimmen. Ja, das Eintauchen ist vielleicht der schnellste Weg, um Lisp zu lernen, aber es ist auch der wahrscheinlichste Weg, Leute abzuweisen. PCL hat den Vorteil , dass erfahrene Programme beginnen mit Lisp von Tag 1, statt nur mesmorized werden
Aaron

43

Das MIT hat einen vollständigen LISP-Kurs im DIVX- und MPEG-Format zur Verfügung gestellt. Ich empfehle es sehr.

http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/


3
Die Vorlesungen basieren auf ihrem Lehrbuch Struktur und Interpretation von Computerprogrammen.
Graywh

7
Ich fand die DivX-Videos von ähnlicher Qualität wie die MPEG-Videos, obwohl sie viel kleiner sind. Sparen Sie sich Bandbreite und Speicherplatz.
Drew Noakes

2
Um noch mehr Speicherplatz zu sparen, gehen Sie zum Link und suchen Sie nach "Struktur und Interpretation" (unter Verwendung der Anführungszeichen).
Bill Evans bei Mariposa

Ich gehe die Videos SICP durch. Welchen Dialekt verwenden sie? Sie erwähnen den Dialekt nicht, sie nennen ihn einfach "LISP" ...
Priester

2
@priestc Ich weiß, dass diese Frage vor 4 Jahren gestellt wurde, aber nur um es klar zu machen. Sie verwenden "Schema".
dptd

33

Es gibt jetzt ein Buch namens "Land of LISP" , das LISP-Programmierung durch das Schreiben von Textspielen im Stil der 80er Jahre lehrt. Ich lese es jetzt und es ist sehr gut geschrieben und nimmt sich selbst nicht zu ernst, was mir gefällt.


23

Hier gibt es mehrere Möglichkeiten. Erstens unterscheiden sich Scheme und Common Lisp in ziemlich tiefer Hinsicht ziemlich (wie beim Scoping). Sie sollten zunächst eine auswählen und eine Weile dabei bleiben . Ich bin ein Common Lisp-Fan, aber das könnte eine dieser religiösen Fragen zwischen vi und EMACS sein.

Wählen Sie für Scheme die Programmiersprache Scheme von Kent Dybvig , gefolgt von SICP.

Für Common Lisp sowie für Practical Common Lisp würde ich David Lamkins ' Successful Lisp empfehlen . Successful Lisp ist auch kostenlos online verfügbar .

Schauen Sie sich danach Lisp in Small Pieces von Queinnec und Norvigs Lisp in AI-Buch an .

Marty Hall hat eine schöne Liste bei Johns Hopkins.

Aktualisiert : Ich meine nicht, für immer dabei zu bleiben, nur dass der Versuch, beide gleichzeitig zu lernen, verwirrend wäre.



17

Ich würde Project Euler als hervorragende Quelle für kleine Probleme empfehlen, mit denen Sie sich jede neue Programmiersprache beibringen können.


1
Ich bin bereits ein guter Teilnehmer des Projekts Euler, also ja, die Zeit, die ich dort verbringe, wird LISP üben (sobald ich gelernt habe, wie man ein paar Sachen macht)
DFectuoso

9

Ansi Common Lisp von Paul Graham ist ein gutes Buch.

Ich denke, es könnte vergriffen sein, also ist es am besten, es über Amazon zu bekommen. Ich habe das Buch für eine "Natural Language Processing" -Klasse bekommen, die ich in meinem zweiten Studienjahr absolviert habe. Wir mussten die Programmierprojekte in LISP schreiben, und so musste ich Lisp schnell lernen.

Das Buch hat mir sehr geholfen.


8

Einmal hatte ich ein Problem. Ich wusste nicht, lisp. Also habe ich beschlossen, LISP in einer Box herunterzuladen.

Dann fand ich mich mit einer Emacs-Installation ohne Hilfe oder Dokumentation wieder.

Dann hatte ich zwei Probleme.


2
Das Problem hierbei ist, dass Ihnen jemand nichts über das Tutorial erzählt hat. Drücken Sie Strg-H, lassen Sie sie los und drücken Sie T. Damit gelangen Sie zu einem Tutorial, das Ihnen alles bietet, was Sie für den Einstieg benötigen. Tut mir leid, von Ihrer schlechten Erfahrung zu hören.
JasonFruit

7
+1, um auf den alten Regex-Witz zu verweisen, -1, um darüber hinaus nicht nützlich zu sein. :-P
Michael H.

7

Für ernsthafte Lernende würde ich PAIP von Norvig empfehlen . Es ist eine ausgezeichnete Ressource, um sowohl Lisp als auch KI zu lernen.


Ich stimme dem zu, es ist ein großartiges Buch, gut geschrieben und IMO inspirierender als Practical Common Lisp.
Johan Kotlinski

6

Berkeley bietet CS61a im Podcast-Format an. Dies ist eine Einführung in die CS-Klasse, die auf SICP basiert. Es ist eine modernere Version als die Videos von 1982, die MIT zur Verfügung hat.


6

Ich arbeite mich gerade durch Lisp und bin auf "das Buch" gestoßen, um Lisp zu lernen. Es wurde von Rainer Joswig vorgeschlagen

Das Buch heißt Common Lisp: Eine sanfte Einführung in die symbolische Berechnung und kann als PDF heruntergeladen werden. Der Autor beginnt im ersten Kapitel mit einem UML-ähnlichen Ansatz für Lisp und führt schrittweise mehr und mehr Lisp-Syntax ein.

Ich habe mir auch das praktische Lisp angesehen und denke, dass der Autor viele erforderliche Informationen beschönigt, selbst für einen erfahrenen Programmierer. Dieses Buch scheint das nicht zu tun (ich bin noch nicht ganz fertig, aber ich fand es nützlich genug, um es vorzuschlagen).

Eine weitere Sache, Sie benötigen eine Umgebung, in der Sie arbeiten können. Ich habe festgestellt, dass Lisp in a Box gut funktioniert. Es läuft unter Windows und Linux und verwendet eMacs.


5

Ich bin von LISP durch seinen JVM-Dialekt - Clojure - angezogen worden. Clojure ist seitdem eine Art großartiges LISP

  • Es hat "vereinfachte Syntax", das heißt, weniger Parathensis sind erforderlich, es gibt geschickt gestaltete Sammlung von Sammlungen zur Verfügung
  • Es ist JVM-basiert, daher gibt es darunter eine stabile, performante Laufzeit. Außerdem ist das gesamte Java-Ökosystem (Bibliotheken, z. B. Datenbanktreiber, Build-Tools, IDEs) in unserer Reichweite
  • Noir ist ein gutes Webframework. Apps können auf Java-Web- und Anwendungsservern bereitgestellt werden

Mit anderen Worten, Clojure kann genau hier und jetzt in der Produktion eingesetzt werden.

Wenn es um Ressourcen geht, gibt es mindestens 4 Bücher und pflanzliche Online-Ressourcen:




4

Ich fand, dass das Durcharbeiten der Übungen in "The Little Schemer" wirklich dazu beigetragen hat, die rekursive, musterangepasste Seite meines Denkens zu verfeinern und die Arbeit in XSLT erheblich zu vereinfachen.


2

Ich empfehle zunächst eine sanfte Einführung in die symbolische Berechnung oder das praktische Common Lisp, basierend auf Ihren Programmiererfahrungen. Zum Üben verwende ich Allegro CL 8.2 Free Express Edition unter Windows. Das Üben macht viel Spaß.


1

Eine Art schwer zu beantwortende Frage ... Ich denke, alles hängt von Ihrem Lernstil ab.

Ich habe LISP in meinen KI- und Expertensystemklassen am College gelernt, aber so lerne ich ... Ich bin kein großartiger Buchlerner, ich möchte lieber, dass jemand es mir in einer Klassenumgebung erklärt.

LISP ist definitiv eine einzigartige Sprache und erfordert einen neuen Gedankengang, wenn Sie an konventionelle C-, Java- und PHP-Programmierung gewöhnt sind.

Viel Glück für Sie!


1

Ich fand, dass das Lesen des Buches SICP mir wirklich beim Lernen geholfen hat. Ich habe Steel Bank Common Lisp (SBCL) verwendet und war damit sehr erfolgreich.

Viel Glück


Danke Ich werde heute ein paar Bücher auswählen und morgen sehr früh anfangen!
DFectuoso

Beachten Sie jedoch, dass SBCL für Common LISP ist und das Buch sich mit Scheme befasst. Ich habe es noch nicht vollständig gelesen, aber ich denke, es kann immer noch eine große Hilfe beim Erlernen von Common LISP sein. Sie müssen nur die Entsprechungen in Common LISP finden.
Zelphir Kaltstahl

1

Schnapp dir einen Eimer mit ('s und) und geh in die Stadt.


0

Ich weiß nicht, dass Lisp etwas Besonderes ist, das es vom Erlernen einer anderen Sprache unterscheidet. Sie müssen es nur verwenden und seine Funktionen ausprobieren.

Eine Möglichkeit könnte sein, ein einfaches Projekt auszuprobieren .

Eine weitere Option, die speziell für Lisp gilt, besteht darin, eine Emacs-Erweiterung zu schreiben, die Sie bei Ihrer regulären Arbeit unterstützt.


0

Lesen Sie diese Bücher der Reihe nach: Sanfte Einführung in die symbolische Berechnung, ANSI Common Lisp von Paul Graham, und fahren Sie dann mit Practical Common Lisp fort. Oder überspringen Sie die ACL und verwenden Sie sie als Referenz, während Sie sich durch PCL arbeiten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.