Ruby Manor 3 - Programming with Nothing by Tom Stuart

Confreaks4 HN recommenders · 2013–2019
13K views · talk · evergreen · Uploaded 2012-11-10

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.

Strongly recommended in lambda calculus and Y-combinator threads as a mind-expanding half hour that clarifies the ideas.

Watch on YouTube

5 comments from Hacker News

@mekishizufu2013 · in “What is a y-combinator? (2008)”

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]

Strongly recommendsView on HN
@gamegoblin2014 · in “Church Numerals”

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).

Strongly recommendsView on HN
@tacticiankerala2015 · in “A Short and Painless Introduction to the Lambda Calculus [pdf]”

An awesome video which changed my perspective towards lambda calculus and programming in general: programming with nothing: [VIDEO]

Strongly recommendsView on HN
@stan_rogers2017 · in “Whiteboard problems in pure Lambda Calculus”

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.

@stan_rogers2019 · in “FizzBuzz in ten languages”

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]

RecommendsView on HN