W
woodrush
woodrush.github.io · Personal blog · on HN since 2022
Programmer who builds Lisp interpreters in unusual substrates, including Conway's Game of Life, lambda calculus and SectorLISP.
What HN saysCommenters are amazed that a full 32-bit Lisp runs on untyped lambda calculus and that a Life-based processor can run Lisp.
15HN people shared it
10linked it in comments
8stories submitted
493story points
11 months agolast shared
2022people per year2026
Most-shared posts
- 1A Lisp Interpreter Implemented in Conway's Game of Life (2021)5 people · 116 points · first shared 2023 · 7 comments on HN
- 2Show HN: LambdaLisp – A Lisp interpreter that runs on lambda calculus4 people · 189 points · first shared 2022 · 100 comments on HN
- 3Building a neural network in pure Lisp using only atoms and lists3 people · 145 points · first shared 2022 · 7 comments on HN
- 4Show HN: Extending SectorLISP to Implement Basic REPLs and Games2 people · 43 points · first shared 2022 · 4 comments on HN
- 5Lisp in life1 people · first shared 2022
- 6Lambdalisp.pdf1 people · first shared 2022
- 7Lambda 8cc.pdf1 people · first shared 2025
What HN people wrote when they linked it
lxgr · 2025-01-09
Amazing, thank you!
The PDF [1] containing the Lambda calculus term manages to hang/glitch/crash both Firefox's and macOS Preview's PDF renderer, which in itself is quite the achievement in portability.
Update: Nevermind, Firefox handles it perfectly, it just (probably wisely) disables seamless scrolling and I have to use the "next/previous" page buttons manually. macOS got there after a minute or two of loading with no UI indications.
[1] https://woodrush.github.io/lambda-8cc.pdf
jsrcout · 2022-11-01
Almost forgot - Lisp In Life. Pretty sure I first saw it here at HN. IMO the most amazing part is the Life-based processor - once you have that, the rest is "merely" a matter of adding layers. But it's one thing to know someone could do it, quite another to see it in action.
https://github.com/woodrush/lisp-in-life
Run it in your browser here. Definitely worth zooming all the way in to get a sense of scale.
https://woodrush.github.io/lisp-in-life/
creshal · 2025-05-08
Going by example code[1] and the blog post from the author of the examples[2], both. It makes everything harder, but that does stimulate creativity.
[1]https://github.com/woodrush/sectorlisp-examples/tree/main?tab=readme-o…
[2]https://woodrush.github.io/blog/posts/2022-01-12-sectorlisp-io.html
boxfire · 2024-02-18
You can run a friggin full 32 bit lisp on the untyped lambda calculus!
https://woodrush.github.io/blog/lambdalisp.html
contingencies · 2024-02-06
tromp · 2024-01-03
Some rather full featured LISP interpreter has already been implemented in 163654 bits (under 20KB) of binary lambda calculus [1] (previous HN discussion at [2]). Wouldn't it be far simpler to implement binary lambda calculus in Malbolge and obtain a LISP interpreter running on Malbolge that way?
[1] https://woodrush.github.io/blog/lambdalisp.html
[2] https://news.ycombinator.com/item?id=32879848
ducktective · 2022-09-18
Page 32 of the pdf...omg the legends were true!
https://woodrush.github.io/lambdalisp.pdf
sargstuff · 2023-11-27
So, "0"-line Hamiltonian story with lead-off in Leeds UK as leed-in to LC_local references without getting to far down the proverbial (alice and wonerland/Matrix) hole? What was the initial bill starting with? Was duck type on the list?[4]
Merkel the details with fibonacci sequences (think coding golf[1] meets snarfle the garthnok[2]). !A pretty basic logic circuit ("0"), but boolean in OCT 31 bit more detailed[0] (ok, at time of writing, not DEC 25 yet). Easy to get the picturee if use L-System sequences, but may be a bit to many subtle pointed references to start the reader off with.
Does wiki/google 'still have lighting/igniting/firing up the imagination' connotations in today's led illuminated world?
(or have to block it out with sectorlisp[5] and decent color type scheme[6]
-----
virtual pcb traces/leads:
diy customized circuit board making : https://www.instructables.com/Making-A-Customized-Circuit-Board-Made-E…
why are you still making pcbs? : https://hackaday.com/2015/09/21/why-are-you-still-making-pcbs/
! "one-off-diy-pcb-creation-technique" : https://electronics.stackexchange.com/questions/7003/best-one-off-diy-…
-----
[0] : No UTF-8/16/32 re-release yet! -> Star Wars Asciimation : https://www.asciimation.co.nz/
Less DMCA notice potential if skip the SNL Jim Carrey characters.
[1] ; Code golf : https://en.wikipedia.org/wiki/Code_golf / https://esolangs.org/wiki/Main_Page
[2] : 'snarfle the garthnok' :…
jart · 2023-07-14
It's because I'm an insomniac. When normies are sleeping, I'm running around setting up franchises. One of my other sock puppet accounts that got banned by Lobsters is Paul Kulchenko, who isn't actually the genius who built ZeroBrane Studio https://studio.zerobrane.com/, but is just me pretending to be a Windows developer when I can't fall asleep. Lobsters also banned Hikaru Ikuta (woodrush), who isn't actually a PhD at the University of Tokyo who discovered the lambda calculus expression for LISP https://woodrush.github.io/blog/lambdalisp.html, he's clearly just another one of my sockpuppet accounts I created due to being an insomniac. Those are the sorts of stories we've been sharing with the Lobsters community, and we'd been received very positively until now. I'm disheartened by how the recent unexpected actions of this rogue moderator will impact the wonderful community that had been nothing but kind to us.
woodrush · 2022-09-18
The basic tools required for implementing a LC interpreter in LC is demonstrated in LambdaLisp. Although LambdaLisp implements Lisp, the same tools can be used to implement a LC interpreter in LC.
The largest concern in question here may be how I/O is done. I/O can be done by viewing a lambda term as a function that takes a string as an input and outputs a string. Here, a "string" can be expressed as a "list" of "characters", where lists can be encoded using the Scott encoding, and characters can be encoded as a list of bits, and "bits" can be encoded as 0=\x.\y.x, 1=\x.\y.y. This I/O strategy is used in LambdaLisp as well, and is explained in my post in [1].
How Lisp terms are encoded as lambda terms in LambaLisp is explained in [2].
To implement a LC interpreter instead of a Lisp interpreter in LC, it then remains to somehow encode and quote a lambda calculus term into a lambda calculus term. The function described by tromp's reply in this thread, called the Universal Machine, does this - it does so by using an encoding called the binary lambda calculus (BLC) notation for encoding lambda terms into lambda terms. In this notation, an arbitrary lambda term in the usual plaintext notation such as \x.\y.\z.(x y z) can be encoded into a bitstream. The converse is also always possible. The Universal Machine uses the BLC notation for expressing lambda terms, with the same 0/1 bit encoding and list encoding mentioned earlier, and outputs a bitstream (encoded as lambda terms)…