# There is a bluebird in my talk that wants to get out

There is a bluebird in my talk that wants to get out, but state machines are too tough for him. This is not your usual functional programming talk. In it, you'll learn lambda calculus itself and see how exciting it can be to derive combinators from the most elegant ideas in computability theory.

Functional programming, JavaScript, and birds. Most people like at least two of them.

In this talk, we'll explore functional programming from a different angle. Instead of talking about functors, bifunctors, profunctors, monads, comonads and other trendy concepts we'll take a step back and learn lambda calculus itself.

How does lambda calculus express computation? How can we represent concepts such as true or false or, even better, how can we express boolean logic? How can we do arithmetic operations without using any numbers? What about loops? These are a few of the questions we're going to answer and we're gonna do that with small incremental steps.

During all this process we'll also identify some unique and exquisite creatures: birds (or combinators, as some other people call them). These are patterns that will emerge naturally from the process of rediscovering lambda calculus and are guaranteed to blow everyone's mind by their simplicity and elegance.

Rediscovering lambda calculus feels like rediscovering math and finally understanding what is behind functional programming.

We'll finally let our bluebird out. We won't be too tough for him.

Lucas is a Brazilian software engineer living in London. He breathes JavaScript and is passionate about open source. He is a core team member of Chai.js and Sinon.js, two of the most popular libraries in the JS ecosystem, and is always trying to find better and more efficient ways to solve problems. His motto is "strive to be lazy".