Murat Nakkaya
nakkaya.com · Personal blog · on HN since 2009
Murat Nakkaya, a developer who writes about Clojure and Lisp, and is the author of the Ferret Lisp compiler.
What HN saysHN links it for Ferret, a Clojure-like Lisp for real-time and embedded use, and for his micro-manual on implementing Lisp in C.
40HN people shared it
13linked it in comments
41stories submitted
520story points
1 year agolast shared
2009people per year2026
Most-shared posts
- 1Show HN: Ferret – A Hard Real-Time Clojure for Lisp Machines7 people · 12 points · first shared 2016 · 3 comments on HN
- 2A micro-manual for Lisp implemented in C5 people · 78 points · first shared 2010 · 6 comments on HN
- 3Alter-ego - A Reactive AI Library3 people · 23 points · first shared 2010 · 7 comments on HN
- 4Ferret: An Experimental Clojure Compiler2 people · 86 points · first shared 2011 · 11 comments on HN
- 5Clojure OpenCV Detecting Movement2 people · 6 points · first shared 2010 · discussion on HN
- 6Controlling an A.R. Drone with the Kinect and Clojure2 people · 6 points · first shared 2013 · discussion on HN
- 7Steganography with Clojure - Hiding Text in Images2 people · 6 points · first shared 2010 · 1 comments on HN
- 8Ferret Lisp FFI Notes2 people · 3 points · first shared 2017 · discussion on HN
- 9Net-eval - Dead Simple Distributed Computing for Clojure2 people · 3 points · first shared 2010 · discussion on HN
- 10Bare Metal Lisp: RC Controls in Clojure on Arduino2 people · 2 points · first shared 2017 · discussion on HN
- 11Java Native Access from Clojure2 people · 2 points · first shared 2009 · discussion on HN
- 12Visualising the Wikileaks war logs using Clojure1 people · 69 points · first shared 2010 · discussion on HN
- 13Fractals in Clojure: Buddhabrot Fractal1 people · 49 points · first shared 2011 · 8 comments on HN
- 14Lindenmayer System in Clojure1 people · 41 points · first shared 2010 · 4 comments on HN
- 15Consistent Hashing with Clojure1 people · 29 points · first shared 2013 · 1 comments on HN
What HN people wrote when they linked it
raju · 2011-07-06
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 :)
nanomonkey · 2025-07-12
Ferret is another Clojure implementation in C, that has a decent C/C++ interface: https://nakkaya.com/2017/06/24/ferret-lisp-ffi-notes/
I'm curious if the author of jank was aware of Ferret, and what was found lacking.
abc_lisper · 2019-07-05
nakkaya · 2018-09-13
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-…
drtse4 · 2018-09-11
And some implementations in:
- C: https://nakkaya.com/2010/08/24/a-micro-manual-for-lisp-implemented-in-…
- 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-sw…
chipset · 2017-08-08
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
jwhitlark · 2017-08-08
He wrote about the motivations here: https://nakkaya.com/2016/06/10/ferret-a-hard-real-time-clojure-for-lis…
nickpsecurity · 2016-10-14
junke · 2016-09-26
You could use JNA (Java Native Access) with Clojure[0], exactly like ABCL does with the CFFI library.
[0] https://nakkaya.com/2009/11/16/java-native-access-from-clojure/
616c · 2016-06-26
This was originally posted in 2011. The dev is STILL plugging away at this, with fresh commits and blog posts.
http://nakkaya.com/2016/06/10/ferret-a-hard-real-time-clojure-for-lisp…
Really shocked I had not picked up on this sooner!
fogus · 2010-12-29
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.
andrewf · 2010-08-24
It's this: http://nakkaya.com/2010/08/24/a-micro-manual-for-lisp-implemented-in-c…
I suspect Red Hat's gcc is aligning structure members on 64-bit boundaries.
dj-wonk · 2014-06-01
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-computi…
* Kuzu may or may not be useful to you, but I'd be interested in any and all commentary.