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!

DFectuoso
quelle
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 .

Avi
quelle
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.

Sternenblau
quelle
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 .

John D. Cook
quelle
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/

user49978
quelle
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.

fbl
quelle
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.

Charlie Martin
quelle
19

Holen Sie sich das Land von Lisp von Conrad Barski. Es ist eine unterhaltsame Einführung in die Lisp-Programmierung mit Cartoons und Spielen.

Ashwin Nanjappa
quelle
17

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

JesperE
quelle
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.

Scott Wisniewski
quelle
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.

adolfojp
quelle
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.

amit
quelle
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.

Steve Rowe
quelle
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.

BlueBadger
quelle
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:

Piotr Kochański
quelle
4

Ich habe es genossen, Practical Common LISP und ANSI Common LISP zu lesen .

Auf LISP sieht interessant aus, aber bei 190 Dollar scheint ein wenig teuer für ein Buch.

Ferruccio
quelle
4
"On Lisp" ist frei auf der Website des Autors verfügbar.
user49117
3
Hier ist der Link zum kostenlosen Download von On Lisp. Link
Andrew-Dufresne
4

Für die Webentwicklung sollten Sie sich hunchentoot ansehen , einen Webserver, der in Common Lisp geschrieben ist.

Kim Stebel
quelle
Sie wissen, es ist sehr traurig zu sehen, dass alle Webserver und Frameworks rund um Lisp, die
weborientiert sind, NULL-
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.

Andy Dent
quelle
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ß.

Hajovonta
quelle
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!


quelle
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


quelle
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.

Chance
quelle
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.

Jon Ericson
quelle
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.

Abhijith
quelle