Welchen Lisp soll ich lernen?
Die Lisp (Dialekt), sollte ich lernen, und warum?
Die Fragmentierung zwischen CL und Regelung verlangsamt die Aufnahme (zumindest für mich!).
So, geben Sie mir die "wahre Antwort", bitte!
Habe ich versucht zu Lesen, feature-Vergleiche, und Sie scheinen zu verzetteln in esoterica (verstehe ich nicht), wie, ob der Dialekt ist voll tail-rekursiv ist, und dergleichen. Ich hoffe, Sie alle (zusammen) können die undurchsichtige Unterschiede deutlich.
Dinge, die ich mag
Gute Bibliothek, Unterstützung, gute Umgebungen und Unicode-Unterstützung.
Dinge, die ich nicht mag
Flamewars. Features, die nützlich sind am Anfang, aber stören langfristiges lernen.
Updates
- Habe ich meistens mit MzScheme, die genieße ich ganz gut, nachdem ich die readline-Unterstützung gehen. Ich glaube nicht, führen Sie eine GUI auf Unix, so schien es zu sein, eine feine Umgebung option für mich.
- Ich bin auch sehr froh, dass Clojure hat eine einfach zu installieren .deb-Paket auf debian, so dass es viel einfacher zu spielen. Dies ist ein großer Gewinn. Trotz der Feindseligkeit von einigen Recht leicht zu Wut unter, die geringe Eintrittsbarriere ist ein Gewinn. Ich mag vorkauen zu lassen.
- Nach der Lektüre eine Menge mehr von SICPich verstehe die Fragestellungen rund um die tail-Rekursion viel besser.
InformationsquelleAutor der Frage |
Du musst angemeldet sein, um einen Kommentar abzugeben.
Clojure ist eine aktiv entwickelte, moderne Dialekt von Lisp. Es basiert auf der JVM, so dass alle Java-Bibliotheken, die sofort verfügbar sind, und hat deshalb auch die Unicode-Unterstützung.
Dies ist eine alternative, nicht die Eine Wahre Antwort.
InformationsquelleAutor der Antwort Greg Hewgill
Wenn Sie wollen vermeiden, flamewars und genießen Sie die Bibliotheken gehen mit Clojure. Es ist klein, es ist schnell, und die community ist hilfreich, und nicht dogmatisch. Es ist Lisp minus die absurde Reste der 1980er-Jahre . Es hat eine BDFL und wenn Sie eine gute Idee, es ist eine verdammt gute chance, es wird umgesetzt in die Sprache.
Ich habe gespielt, um mit Common Lisp, es ist eine schöne Sache. Ich habe gerade die ersten 3 Kapitel und die Metacircular Evaluator in SICP in DrScheme, und das ist schön-Ding. Natürlich, werden Sie großen nutzen aus dem lernen diese.
Aber im Laufe der Zeit habe ich halt den kleinen Sprachen Liebe zu meinem Herzen. Ich werde nicht Lügen, ich Liebe Javascript und ich Liebe C (und verdammt noch mal, wenn jeder Sprache, die nicht mit einem C-Kern in es das Herz) weil Sie klein sind.
Clojure ist klein. Es ist elegant. Es ist eine Sprache für unsere Zeit.
InformationsquelleAutor der Antwort dnolen
Contra Chuck, ein Vorteil von Common Lisp ist, dass es eine standard-Implementierungen stick und danach zu Streben, solche, die Sie entwickeln können, die weitgehend mit SBCL (die hat ausgezeichnete Typüberprüfung und-Inferenz) und dann, sagen wir, bereitstellen als ausführbare Datei gelinkt, die mit C-Bibliotheken (mit ECL oder andere) oder wie ein .jar machen verwenden, Java-Bibliotheken (mit ABCL), oder mit einem Mac oder einem Windows-native GUI (Clozure, beide). Common Lisp ist erstaunlich portabel über Architekturen und über Implementierungen und im Laufe der Zeit, und Gemeinsame Lispers Anstrengungen Unternehmen, um die Dinge auf diese Weise, mit Unterstützung der Sprache. Als eine illustration, eine dumme Divergenz von unstandardized Verhalten ist die Frage "ist das eine spezielle variable?" So antwortete ich, in den Implementierungen, die ich benutze:
reduziert, zu Lesen, Zeit, um nichts auf ABCL (hat es das schon), zu
(defun special-variable-p (symbol) (si:specialp symbol))
auf ECL, und so weiter. So kann ich dieses in meine .rc-Dateien und verwenden Sie die gemeinsame Funktion in der REPL. Aber das ist nicht sehr wichtig: dies ist nicht threading oder unterschiedlich-gesicherte Netzwerke oder ein Communicating Sequential Processes Bibliothek. Das Letzte Beispiel, nur hat man#+sbcl/#-sbcl
sogar, wie es läuft auf fünf Implementierungen. Denn es basiert auf code, der sorgfältig portiert.Aber was ermöglicht diese (und andere) Vorteile birgt seine eigene Herausforderung an die Lernenden: Common Lisp ist eine sehr große Sprache. Es ist nicht etwas, das können Sie schlürfen bis in einer Woche oder zwei, wie ich in Clojure (aber meine Clojure ist bereits verfallenden mit den aktuellen änderungen-set roll-out -, daß die Sprache, obwohl schwer mit seinen eigenen Verdiensten, erinnerte mich hingegen an eine Menge von dem, was ich mag über Common Lisp.) So Lesen Sie eine Menge von auf dieser Seiteund halten Sie die HyperSpec einen Tastendruck entfernt (für mich
M-x hyperspec RET do-symbols RET
ist ausreichend, Nähe zur Bibel.), und denken über den Kauf ein paar Bücher. Ich habe Practical Common Lisphabe gerade Lassen Sie Uns Über Lambdaund kaufen PAIP sehr bald.Aber auch wenn Common Lisp ist die Wahre Antwortwerden Sie nicht komplett Ihre Zeit verschwenden, indem Sie "just picking" einigen scheinbar auffällige alternative (-- 'irreführend', weil alltäglich CL nicht zeigen Sie allen, dass Ihre Makros machen kann, und es hat mehr Arten von Makros als jeder andere. Den üblichen Vergleich zwischen schlechten CL-und syntax-optimierte alternative X). Du wirst weiterhin lernen Sie die Grundlagen, können Sie immer noch viel von dem, was Sie können, Lesen Sie in SICP, Lisp, Der Kleine Intrigantetc. Ein lisp, auch die falsche lisp, ist immer noch besser als ein nicht-lisp. (Aber Sie verbringen einen Teil Ihrer Zeit der Implementierung von teilen des rechten lisp, schlecht, falsch lisp. Meta-Greenspun.)
InformationsquelleAutor der Antwort ayrnieu
Clojure ist ein toller Dialekt von LISP, das fördert die funktionale Programmierung. Es läuft auf der JVM, so dass Sie Zugriff auf alle Java-Bibliotheken verwendet werden könnten, zu verwenden. Die Website verfügt über umfangreiche Dokumentation und screencastsum Ihnen zu helfen lernen. Ein weiterer Vorteil ist, dass es sehr einfach zu installieren, im Gegensatz zu vielen anderen Dialekten.
Wenn Sie gerade suchen, um zu verstehen, die Konzepte Emacs (EmacsLISP speziell) ist eine weitere alternative. Es kommt mit einer unglaublichen Dokumentation, tutorials und jede Menge code-Beispiele. Screencasts sind relativ einfach zu finden. Einer der großen Vorteile von Emacs ist, dass der editor, geschrieben in LISP so der editor hat natürlich sehr gute Unterstützung für das ausführen, Bearbeiten und Debuggen von LISP. Darüber hinaus erweitern Sie den editor, um Ihren jeden Tag von text-Bearbeitungsfunktionen, einfachere während Sie lernen LISP.
InformationsquelleAutor der Antwort Bryan Kyle
Nur ein pick, und zu lernen. Durch die Zeit, die Sie herausfinden, die Unterschiede, du wirst in der Lage sein, noch einmal zu wählen, wenn Sie sich entschieden haben schlimm die erste Zeit.
InformationsquelleAutor der Antwort Gregg Lind
Lisp größtes problem ist, dass es keinen übergeordneten standard jeder klebt. Sie haben nur zu wählen zwischen Common Lisp und Scheme; Sie haben zu wählen zwischen mehreren inkompatiblen Implementierungen von Common Lisp und mehrere inkompatible Implementierungen Schema, wie auch andere kleine Dinge wie Bogen-und Clojure.
Ich würde empfehlen, beginnend mit MzScheme. Es ist beliebt, es wird aktiv entwickelt, es hat viele Bibliotheken, die die Funktionen einer modernen Entwicklungsumgebung, und die Regelung ist etwas einfacher (um nicht zu sagen besser, nur einfacher) als Common Lisp.
InformationsquelleAutor der Antwort Chuck
Lernen elisp-so verlängern Sie Emacs.
InformationsquelleAutor der Antwort mletterle
Gehen mit Clojure. Es ist eine erstaunliche Sprache-mit vollem Zugriff auf alle Java-Bibliotheken. Es hat in der Entwicklung für die knapp über 2 Jahre und hat schon 3 IDE-plugins in Entwicklung und ein Buch veröffentlicht, das im April darüber. Es ist sehr schnell, sehr elegant und schön. Sie können nicht schief gehen mit Clojure.
InformationsquelleAutor der Antwort Rayne
Sich für mich die grundlegende Theorie der Regelung ist weit mehr überzeugend. PLTScheme ist, bei weitem, die aktiv entwickelt, LISP, die ich gefunden habe. Leider, es hat eine Verbreitung von der Eingabe verdeckt die Schönheit von Lisp.
Ich würde gerne sehen, so etwas wie arc gelingt, aber es scheint unwahrscheinlich.
InformationsquelleAutor der Antwort Javier
Werfen Sie einen Blick auf IronScheme.
InformationsquelleAutor der Antwort Nemanja Trifunovic
Vermutung: wenn das lernen der ersten lisp, lernen nicht, Sie werden am Ende Verwendung für end-Entwicklung.
Lemma: lernen, Arc. Es sind alle "schwer zu verstehen" die Dinge in lisp - Verschlüsse, Makros, Fortsetzungen, mit keiner von Clojure Java-interop Komplexität, CL-namespace Verwirrung, oder das Schema-name Fragmentierung. Wenn Sie engagiert, Sie können lernen, alle diese Dinge an einem Wochenende. Wenn Sie scharfe und engagiert, in einer Nacht.
Und Sie werden lernen, all die anderen lisps eine viel einfacher.
InformationsquelleAutor der Antwort Andrey Fedorov
Ich weiß nicht, Lisp, aber heres, warum ich denke, PLT-Scheme ist eine gute Wahl:
Wirklich Gute Dokumentationen
http://download.plt-scheme.org/doc/html/
DrScheme
DrScheme ist eine erstaunliche Programmierumgebung mit einem compiler, stepper, syntax-checker, REPL, den unzähligen Sprachen und ist erweiterbar. Dies macht die ganze Erfahrung Spaß. Sehen Sie einige screenshots
Gute Unterstützung von der Gemeinde.
Die community ist sehr begeistert von Ihrer Sprache und sehr unterstützend zu. Wenn Sie Fragen haben, Mailinglisten, Gruppen und Foren zur Verfügung stehen. Auch die Autoren sind sehr, sehr zugänglich.
Kontinuierliche Forschung
PLT ist sehr aktiv und machen weiterhin Ihr Werkzeug besser und besser. Sie können erwarten, eine Menge an Innovationen aus den labs. zB. Im ziemlich aufgeregt über diese: http://blog.plt-scheme.org/2009/05/typed-scheme-20.html
Kostenlose Bücher und interessante tutorials für den Einstieg.
http://www.htdp.org/
http://world.cs.brown.edu/
Gute Module und umfangreiche Bibliotheken.
http://www.cs.utah.edu/plt/develop/
http://planet.plt-scheme.org/
siehe auch docs
Wenn Sie lernen, Regelung, geben DrScheme versuchen.
InformationsquelleAutor der Antwort unj2
Weißt du... Wenn ich habe Interesse an Lisp-ich dachte auch, ich würde wählen müssen. Dann, nach der Lektüre und viel verlangt ist, ich landete die Wahl von Common Lisp. Nicht weil es "besser" als Schema in einer absoluten Weise, aber weil Sie es noch Funktionen, die ich wusste, ich würde wahrscheinlich in den nächsten 2-3 Jahren in meinen Projekten:
Also, wenn ich du wäre, würde ich anfangen, zu lernen, ein bisschen von jeder Sprache, und finden Sie heraus, was sind die relative stärken und Schwächen jedes einzelnen (ich meine, jene, die im Zusammenhang zu dem, was Sie brauchen/wollen, tun Sie meistens), so dass ich Sie abholen ein. Sie können nur herausfinden, dass Sie lernen, die anderen später auch (ist mir passiert-ich hatte um mehr zu erfahren Schema nach einem Jahr Studium Common Lisp)
Als Arc, Clojure und Üppig, und weiß nicht, die. Ich nehme an, das gleiche argument könnte für Sie auch... Die Gründe, warum ich wollte nicht zu viel investieren, auf Ihnen waren: Arc scheint nicht interessant zu sein für die numerische Datenverarbeitung und P. Graham scheint obssessed durch die code-Größe (bis zu dem Punkt dass seinen code nicht lesbar); Clojure scheint nett, aber ich weiß nicht, wie die JVM. Und Lush... Naja, neben der Verwendung der dynamische Umfang, den kompilierten und interpretierten Versionen der Sprache sind sehr anders-und Sie kann nicht kompilieren, Funktionen rekursiv. Also war es entweder Schema-oder Common Lisp zu mir.
InformationsquelleAutor der Antwort Jay
Denke ich, dass Sie entweder wollen, Common Lisp oder PLT-Scheme.
Erstere kommt mit viel Freiheit und macht (das könnte Sie überwältigen auf den ersten), und letzterer kommt mit einer Reihe von Bibliotheken, die passenden tutorials und eine gut integrierte IDE.
InformationsquelleAutor der Antwort skypher
Ich bin ein fan von dem System, aber es hat schon mehr als 10 Jahre her, seit ich etwas getan, die mit dem Schema.
wie andere gesagt haben - nur ein pick and go.
InformationsquelleAutor der Antwort Tim
Gibt es sehr wenige echte Entscheidungen gibt es, entweder SBCL, Clojure oder PLTScheme.
InformationsquelleAutor der Antwort Marko
Wählen Sie etwas, aber Clojure, mit ihm zu gehen, und Sie werden in einer besseren position, um zu bewerten später.
Sie formuliert diese Frage wie die Lisp ist das beste medium zum erlernen von Lisp, und für mich hat um eine Lisp, die aufgebaut wird, von low-level-primitiven, in der Erwägung, dass große Teile von Clojure in Java geschrieben sind.
Wenn Sie so formuliert, wie diese Frage, welche die beste Lisp ein neues Projekt starten, dann Clojure kann die beste Wahl sein.
InformationsquelleAutor der Antwort