2009-09-11 15 views

Antwort

41

Es wäre zu Ihrem Vorteil, alle drei zu lernen, wenn Sie nur auswählen können, welches für Ihre Bedürfnisse am besten ist. Alle drei haben ihre eigenen Stärken und Schwächen.

Clojure ist vage wie Scheme in dem es eine meist funktionale Sprache ist und ein Lisp1 ist. Clojure entlehnt sich auch an Common Lisp, wie Multimethoden und Makros, und Leute portieren immer coole Common-Lisp-Dinge nach Clojure als Bibliotheken. Der Schöpfer von Clojure war selbst ein Common Lisp Hacker, bevor er Clojure schrieb. Clojure entlehnt viele Begriffe und Konventionen von Scheme und CL (hat aber auch in vielen Bereichen seinen eigenen Geschmack).

Es gibt nicht viel Literatur für Clojure im Moment, es ist so eine neue Sprache (es gibt nur one Clojure book so far). Aber es gibt viele gute Scheme-orientierte Bücher, wie SICP und The Little Schemer/The Seasoned Schemer. Es gibt auch gute CL-Bücher, wie PCL und viele andere.

Lisps haben auch eine Menge Geschichte und es ist zu deinem Vorteil, die Geschichte zu verstehen, zu sehen, wo und warum Clojure von ihr abweicht, wenn nichts anderes.

Ich würde empfehlen, mit Scheme zu beginnen, weil es die einfachste Sprache der drei ist und daher am einfachsten zu lernen. Dann fummeln Sie in CL und Clojure, bis Sie die Dinge in den Griff bekommen haben, und gehen Sie dann mit voller Kraft in das, was auch immer Sie anstreben.

+2

Tolle Antwort. Vielen Dank. – uzo

+0

lesen Sie "das kleine Lisper" dann "SICP", um Schema oder Lisp zu lernen –

16

Für Ihre Zwecke denke ich, dass Sie sicher sind, einfach Clojure zu lernen. Die Unterschiede zwischen Lisp und Scheme (und Clojure selbst) sollten kein Problem sein, besonders wenn Sie gerade anfangen zu lernen.

3

Es hängt davon ab, ob Sie sich auf Lernen oder Spielen konzentrieren möchten. Wenn Sie wirklich Lisp studieren wollen, ist Scheme ein guter Anfang. Wenn du lieber spielen möchtest, während du lernst, passt Clojure besser.

Schließlich denke ich, dass Clojure eine bessere Lernsprache sein könnte. Die Unterstützung für Nebenläufigkeit ist wirklich augenöffnend. Wenige Sprachen machen es einem Anfänger so einfach, gleichzeitige Programme zu schreiben.

6

Meine erste Lisp-Lernerfahrung war mit Scheme, ich habe Common Lisp nie berührt (fühlte, dass es zu komplex war) und beginne jetzt mit Clojure.

Ich habe Dorai Sitarams "Teach Yourself Scheme in Fixnum Days" verwendet, um Scheme zu lernen und bin ziemlich weit gekommen, obwohl ich nie wirklich wollte, dass Scheme in realen Projekten verwendet werden sollte.

Clojure, weil es angeblich schönen, sauberen Zugang zu dem riesigen Universum von J2SE/J2EE-Bibliotheken gibt, ermutigt mich andererseits, diesen Lisp-Dialekt neu zu lernen, weil es schließlich von praktischem Nutzen sein kann.

Für welche zu Beginn, würde ich sagen, Scheme ist einfacher und so könnte am besten geeignet sein, mit zu beginnen. Auf der anderen Seite, wenn Sie gute Java und Python Kenntnisse haben, könnten Sie nichts dagegen haben direkt in Clojure zu tauchen, da es im Gegensatz zu Scheme Elemente dieser anderen zwei Sprachen enthält (zB Datenstrukturen erinnern an Python und JVM/Java API centric tutorials) und das vertraute Gelände könnte helfen.

Da ich von allen dreien gekommen bin (Java, Python, Scheme), finde ich mich in einer guten Position, um zu erkennen, was Clojure an den Tisch bringt, das sich von Schema unterscheidet. Ich bin kein erfahrener Schemer, aber ich würde sagen, wenn du sofort mit Clojure beginnst, wirst du immer noch das allgemeine Lisp-Erlebnis bekommen, also wirst du das auf keinen Fall verpassen, indem du auf Scheme verzichtest.