I'm reading "The Little Schemer", and implement a Scheme interpreter as I go. I'd recommend this to everyone interested in Lisp, minimalist languages, and recursive thinking! Also, I like how the first chapter ends:

"The Little Schemer" starts off light and easy, and introduces come basic Scheme concepts and functions. The middle part explains how recursive functions are evaluated in excruciating detail, and was not very interesting to me. But the last two chapters were mind-blowing:

Show thread

The last chapter builds a Scheme interpreter in Scheme, which is cool. And the chapter before that explains how to do recursion with nested lambda expressions only, without access to named functions:

Show thread

It builds up the strict, applicative-order Y combinator: The input is a function which takes another function, and returns a function which does some stuff and calls the provided function when it wants to recurse. The output is a recursive version of the inner function.

Show thread

I read the chapter three times, and still didn't completely get it. I found this (long, but awesome) article helpful: After reading it two times, and deriving the Y combinator four times in two languages, I'm now starting to develop an intuition for it…

Show thread


Any sufficiently complicated Go program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.

@blinry I think there's also a of the Y of Y lecture, where they basically read out loud that chapter

@ckeen Sounds super fun! :) But I can't find a mention of that lecture – can you?

@blinry Nope cannot find the right search terms, it seems. It has been a lecture by friedman and felleisen at northwestern IIRC, maybe due to some special occasion....

@blinry @ckeen I kindof wish that article was available under a permissive license. I feel like that page could complete it's morph into domain-squatting-sourceforge-hell any day now. But maybe I'm just being snobby.

You could have the wayback engine from do a snapshot *now*
Sign in to participate in the conversation – a Fediverse instance for & by the Chaos community