Murat Nakkaya, a developer who writes about Clojure and Lisp, and is the author of the Ferret Lisp compiler.
HN links it for Ferret, a Clojure-like Lisp for real-time and embedded use, and for his micro-manual on implementing Lisp in C.
Some comments, which may be obvious:
* I have not tested Kuzu in production yet.
* It has a tiny fraction of the power of real projects like Hadoop, Storm, Spark, and so on.
* I created it because I wanted a simple way to run maps, reduces, and filters over many machines without making big changes to my original Clojure code. For this simple use case, many distributed computation systems seem quite complicated, so I thought it would be fun to write something extremely simple.
* I was inspired by how PigPen https://github.com/Netflix/PigPen offers a very natural interface to Clojure. I wondered if that could work on top of something simpler than Hadoop + Pig.
* This isn't the first time something like this has been done. See net-eval for example http://nakkaya.com/2010/02/16/net-eval-dead-simple-distributed-computing-for-clojure/.
* Kuzu may or may not be useful to you, but I'd be interested in any and all commentary.
I'm not sure how it's implemented in Ferret but Clojure's data structures are implemented as trees so there's structural sharing that happens when a vector or hash map is updated or when a new version is produced.
So the whole data structure isn't copied but only the relevant parts are added / updated in the tree and the rest is shared with the "new" data structure.
Mutable data structures are still more memory effective but I'm assuming its fine since the author has a blog post on using ferret on an Arduino Uno which has 32k of ram.
https://nakkaya.com/2017/02/15/bare-metal-lisp-rc-control-using-ferret/
Clojure data Sturucture links:
Persistent Vectors
http://hypirion.com/musings/understanding-persistent-vector-pt-1
Video with Rick hick on them
https://youtu.be/wASCH_gPnDw?t=1742
One of my favorite resources is the #clojure tag on Twitter. I use Tweetie and have bookmarked a search on that.
Here are a few sites from my GReader
http://www.bestinclass.dk/blog.html
http://nakkaya.com/
http://freegeek.in/blog/
https://groups.google.com/group/clojure
And here are a few tabs that I currently have open (Maybe this weekend I will get to them :D)
https://github.com/dbushenko/ClojureBlog
http://skillsmatter.com/podcast/scala/talk-by-patrick-fredriksson
http://brehaut.net/blog/2011/ring_introduction
http://www.codequarterly.com/2011/rich-hickey/ (Interview with Rich)
http://news.ycombinator.com/item?id=2682191
http://news.ycombinator.com/item?id=2709319
Hope these help :)
I maintain a programming language called Ferret [1]. You can read through the manual, it is a literate program, covers everything you need to implement your own lisp. Compiler, optimizations, runtime, garbage collection etc. [2] overlaps with [1] covers how to compile a restricted subset of Clojure to C++. If you are interested in interpreters [3] has an implementation of the "A Micro-Manual for Lisp - not the whole Truth" in C.
[1] https://ferret-lang.org/
[2] https://nakkaya.com/2011/06/29/ferret-an-experimental-clojure-compiler/
[3] https://nakkaya.com/2010/08/24/a-micro-manual-for-lisp-implemented-in-c/
And some implementations in:
- C: https://nakkaya.com/2010/08/24/a-micro-manual-for-lisp-implemented-in-c/
- Python: https://github.com/mario-goulart/not-the-whole-truth
- Javascript: https://kybernetikos.github.io/Javathcript/
- Swift: https://www.uraimo.com/2017/02/05/building-a-lisp-from-scratch-with-swift/
Here are a few of the culprits:
http://www.paulgraham.com/rootsoflisp.html
http://www.fogus.me/fun/lithp/
http://nakkaya.com/2010/08/24/a-micro-manual-for-lisp-implemented-in-c/
http://www.zogotounga.net/comp/squeak/lispkit.htm
Curse them all.