#clojure promise function implementation is 10 lines! (here, via @wmacgyver)
[clj](defn promise
"... (edited) ..."
[]
(let [d (java.util.concurrent.CountDownLatch. 1)
v (atom nil)]
(proxy [clojure.lang.AFn clojure.lang.IDeref] []
(deref [] (.await d) @v)
(invoke [x]
(locking d
(if (pos? (.getCount d))
(do (reset! v x)
(.countDown d)
this)
(throw (IllegalStateException. "Multiple deliver calls to a promise"))))))))[/clj]
Tail-call implementation for the JVM (here, via @mikedouglas) -- a patch to the JVM source code that would provide TCI... if this patch exists and it works, does this mean we will see TCI in the JVM in our lifetime?
Tutorial: Continuation Monad in Clojure (here, via @timbray) -- If you understand monads, then I guess you'll find this tutorial 'easy'.
The Parenophobes strike again (here, via @kotarak) -- A defense of the lisp syntax from repeated attacks. Speaking to deaf ears maybe? Nonetheless, a good article.
Finally completely automated process of setting up Clojure, clojure-contrib, and vimclojure on new Linux installs (here, via @jakemcc) -- Related blog posts about how the scripts work here, here and here.
Setting up #Clojure, #Incanter, Emacs, Slime, Swank, and Paredit (here, via @liebke) -- "I’ll be demonstrating how to build and install Incanter (which includes Clojure and Clojure-contrib), and then set up a development environment with Emacs, Slime, Swank, and Paredit."
Adder: Python with a Lisp: lisp-1 compiled to #python bytecode like #clojure (here, via @jneira) -- so, for when a clojure that runs on the python VM?
From the project page: "Clojure has prepared the ground for the notion of a Lisp that integrates into an existing language" (via @stuartsierra)
The Arc Challenge from a Clojure perspective (here, via @laujensen) -- While showing how Clojure is a very terse language by comparing it to Paul Graham's Arc (and as a response to Paul Graham's challenge), Lau produces a web application that is the best example of the use of Compojure that I have seen so far (best as in smallest but complete)
Unit testing in Clojure (here, via @aberant) -- I must have missed this one in November, but this is a nice tutorial on creating and running unit tests in clojure.
Mapping OOPS concepts to Clojure? Doable or Wrong thinking? (here, via @ajlopez) -- Walking into a hornets' nest, maybe?