This is one of my favourite talks ever.

In it, I show people how we can use only functions to write any program that has ever been written or that will ever be written. Yes, that’s precisely it — no conditionals, no strings, no numbers, no bit manipulation. Nothing but pure functions.

As I’ve explained in the talk, such an endeavour has been presented before. However, what I wanted with this talk is to take it one step further: do everything in small digestible steps in JavaScript and then explain what combinators are and how we can use them to replace all of the functions we’ve written. In the end, I go even further and show that you can also replace all code with only two combinators.

I highly recommend this talk, not only for the content but also because it’s amusing to watch.