I'm learning Clojure. Coming from Python and JavaScript, I'm still not used to the Clojure way of doing things.<p>Can anyone recommend code (ideally, large apps or libraries) that is considered high quality and readable? I'd like to better wrap my head around the techniques used.
Some of my favourites -<p>* Enlive, a HTML scraping & templating library implemented on top of DOM parsing & state machines <a href="https://github.com/cgrand/enlive" rel="nofollow">https://github.com/cgrand/enlive</a><p>* Core Logic, a Prolog-like logic programming library <a href="https://github.com/clojure/core.logic" rel="nofollow">https://github.com/clojure/core.logic</a><p>* The ClojureScript compiler, a Clojure compiler that targets JavaScript <a href="https://github.com/clojure/clojurescript/blob/master/src/clj/cljs/compiler.clj" rel="nofollow">https://github.com/clojure/clojurescript/blob/master/src/clj...</a><p>* Ring, a Rack/WSGI like web-app library <a href="https://github.com/mmcgrana/ring" rel="nofollow">https://github.com/mmcgrana/ring</a><p>* Midje a very powerful test framework <a href="https://github.com/marick/Midje" rel="nofollow">https://github.com/marick/Midje</a><p>* Carmine, a Redis client lib in Pure Clojure <a href="https://github.com/ptaoussanis/carmine/" rel="nofollow">https://github.com/ptaoussanis/carmine/</a><p>[EDIT] Added Midje, Ring.
Nice question! I'm looking forward to the answers here. Meanwhile, you could have a look at my TicTacToe game: <a href="https://github.com/Borkdude/tictactoe" rel="nofollow">https://github.com/Borkdude/tictactoe</a>
It's not large, and I'm not claiming high quality either, but it might be educational to read and poke at as a beginner.<p>It's a very simple game built as a webapp in the very simple Noir framework (webnoir.org). It also contains unit tests. It uses leiningen as a build tool (so you can simply run it using "lein run" or poke at using "lein repl", run the unit tests using "lein test" etc). As a next exercise I want to build it in ClojureScript (client side only), which should not be too hard.
It's not large, but I found reading <a href="https://github.com/weavejester/hiccup" rel="nofollow">https://github.com/weavejester/hiccup</a> very insightful.