
Ruby Manor 3 - Programming with Nothing by Tom Stuart
About this video
Tom Stuart's Ruby Manor 3 talk builds FizzBuzz using nothing but Ruby lambdas, working through Church encodings of numbers, booleans and data structures. It is a hands-on introduction to lambda calculus.
Why it appears in the archive
Strongly recommended in lambda calculus and Y-combinator threads as a mind-expanding half hour that clarifies the ideas.
AI-generated summary and labels from the source dataset; verify important details against the video. Source & credits.
From the Hacker News discussion
If you are curious about the topic, I strongly recommend watching these videos: Y Not- Adventures in Functional Programming by Jim Weirich [LINK] Programming with Nothing by Tom Stuart [VIDEO]
Read original comment ↗For anyone who finds this interesting, I cannot recommend enough investing a half hour in watching the "Programming With Nothing" talk: [VIDEO] In it, the speaker implements fizzbuzz using only lambda calculus (making significant use of church encoding).
Read original comment ↗An awesome video which changed my perspective towards lambda calculus and programming in general: programming with nothing: [VIDEO]
Read original comment ↗There's a good elaboration of it in Tom Stuart's "Programming With Nothing" talk[0], in which he does a lambda calculus implementation of FizzBuzz in what's left of Ruby if you leave everything out except the things strictly necessary to do lambda calculus - with the exception of what you could call C-style macros (basically text search-and-replace, so you can call a section of code FOO and just type FOO everywhere you would have typed that section of code). There's also the little matter of output - you need to translate the resulting Church numerals into readable form for those who can't see that you've obviously produced correct FizzBuzz. There's a good enough explanation that what needs to be sort of hand-waved for brevity (things that are shown but not really explained in detail) aren't entirely opaque - you will be able to figure it out. Keep in mind, too, that the lambda calculus is a lot like machine language in one respect - the same little bit of "code" can have more than one meaning to the programmer even if the "machine" is doing exactly the same thing. [0] [VIDEO]
Read original comment ↗The same thing, but in Ruby stabby-proc notation (from 2012) by Tom Stuart: [VIDEO] Well, perhaps not exactly the same thing, but only because Ruby requires the Z-combinator due to applicative order.
Read original comment ↗