Ich lerne Clojure, indem ich Tutorials benutze und Probleme wie 4clojure und 99 Lisp Probleme . Es geht mir gut, Probleme zu lösen, aber mein Code scheint immer ein Chaos zu sein, wie im folgenden Beispiel.
Für eine Sprache, die so flexibel ist wie Clojure, wie kann ein Anfänger die idiomatischen Möglichkeiten erlernen, ohne dass jemand anderes die Hand dabei behält?
Ein Beispiel meiner Verwirrung:
%Vor% Falls Sie sich fragen, gibt die Funktion intersectall
lediglich eine Liste der gemeinsamen Elemente in allen Unterlisten der Eingabe zurück.
Also für:
%Vor%Dieses Problem stammt von The Little Schemer S. 117.
Wenn Sie Clojure wirklich bekommen wollen, empfehle ich Ihnen dringend, The Joy of Clojure zu buchen. Es wird von zwei der Jungs geschrieben, die die Sprache neben dem ursprünglichen Schöpfer am besten kennen. Sie erklären, was Sie tun können, wie Sie es tun sollten, und dann das Warum. Ich denke nicht, dass es eine gute ERSTE Buch / Lernerfahrung in der Sprache ist, aber ich denke, es ist das erforderliche ZWEITE Buch, um zu lernen, sobald Sie Ihre Grundlagen haben.
Schreiben und Lesen von Code sind angemessen und notwendig. Wenn der Clojure-Quellcode einschüchternd wirkt, beginnen Sie mit kleineren Projekten, z. B. Ссылка . Da Sie die 4Clojure-Probleme gemacht haben, schauen Sie sich die Lösungen anderer an, nachdem Sie Ihre eigenen geschrieben haben. Suchen Sie nach dem Hashtag # 4clojure in Twitter oder besuchen Sie Ссылка .
Viel Glück!
Entwirf deinen Code in kleinere Funktionen, die eine Sache und eine Sache gut machen. Sobald Sie dies erreicht haben, können Sie versuchen, es eleganter zu machen. Manchmal merkt man, dass dein Endergebnis so süß und kurz ist, dass du es letztendlich sogar in die Reihe bringst.
Binden Sie die Werte, die Sie bereits erhalten haben, mit let
. Wenn Sie zum Beispiel (first lset)
mehrmals an verschiedenen Orten aufrufen, wird Ihr Code ausführlicher.
Ich würde vorschlagen, ein komplexes Beispiel zu dekonstruieren. Beim Denver Clojure Meetup haben wir die Joy of Clojure Quicksort-Auflistung 6.3 Zeile für Zeile dekonstruiert. Ich habe die Folien hier .
Clojurecademy ist eine interaktive Plattform, die Clojure lehrt, es ist sehr hilfreich und einfach Clojure zu lernen.