- I just posted the code for Dan Friedman's and my work on Clojure TCO here
(via @long_way_down) —
This is a library that provides optimized tail calls to Clojure without having to call ‘recur’. It’s a source-to-source compiler and for now it only supports a small subset of Clojure. There is also a blog post with more details and the video of a recent presentation of this project.
- In which we plot an escape from the quagmire of equality (Clojure and Emacs)
(via @Exotz) —
An interesting discussion about Emacs Lisp, being based on mutability, makes things like equality very hard, and what are the possible solutions (none of them easy)
- This is a good read, Clojure's IFn vs. Python's __call__
(via @swannodette) —
It’s easy to see where the writer of the article is going when the article starts with “Those who don’t understand the work of Rich Hickey are doomed to reinvent it, poorly”. And indeed, the author of clojure-py initially implemented functions differently than Clojure-jvm because Python has a way of making objects callable, which Java does’t provide. Well, it turns out that using IFn (which is used in Clojure-jvm) not only makes the compiler code simpler, it also makes it faster.
- Sneakily throwing checked exceptions
(via @philandstuff) —
It used to be that in Clojure checked exceptions would be turned into RuntimeExceptions, and thus information was lost. This is not the case anymore in 1.4, and this article explains the implementation of sneaky-throws, used in 1.4 for this purpose.
- Our site is finally up! clojurewerks.org
(via @ClojureWerkz) —
The guys at ClojureWerkz have been producing new Clojure libraries at a high pace. You can now find them all in one single place.