Put open source to work
July 16–17, 2018: Training & Tutorials
July 18–19, 2018: Conference
Portland, OR

Mary had a little lambda: A live dive into the lambda calculus

Anjana Vakil (Mapbox)
11:50am12:30pm Wednesday, July 18, 2018
Live coding
Location: Portland 252
Level: Beginner
Average rating: ****.
(4.36, 11 ratings)

Who is this presentation for?

  • Anyone curious about the mathematical logic underlying functional programming

Prerequisite knowledge

  • A working knowledge of any language that supports first-class anonymous functions
  • No familiarity with the lambda calculus or functional programming required

What you'll learn

  • Explore the concept of a lambda function—a pure, single-argument, anonymous, abstract function
  • Understand the mathematical notation for defining and applying a lambda function and how these correspond to syntax for defining and calling lambda functions in (Python) code
  • Learn how to use Church encodings and how to represent data, arithmetic, logic, and control flow in the lambda calculus
  • Find common ground between functional and object-oriented programming by defining data and program components in terms of their behavior


Mary had a little lambda
A function pure as snow
And for every program that Mary wrote
The lambda was all she needed to know

You know that a tiny anonymous function, such as Python’s lambda, can be useful in a pinch when you’re feeling too lazy to think up a good function name. But did you know that behind this little lambda is actually one of the most powerful, elegant abstractions in the history of computer science?

Dating back to the work of shepherd Alonzo Church in the 1930s, the lambda calculus lets you represent your programs—all their logic and data—as pure, anonymous functions. Booleans, numbers, operators, control flow, data structures. . .lambda can do it all. Anjana Vakil leads a live-coding deep dive into the lambda calculus, demonstrating the computational power of the almighty little lambda, an abstraction fundamental to functional programming. With some determination and a little squinting, you might even see lambda do the impossible: reconcile object-oriented and functional programming.

Photo of Anjana Vakil

Anjana Vakil


Anjana Vakil is Engineering Learning & Development Lead at Mapbox. Anjana suffers from a debilitating case of curiosity, which led her from philosophy to English teaching to computational linguistics to software development. Talk to her about functional programming, language design and implementation, and speech technology and ask her about Mozilla, Outreachy, and the Recurse Center. She can usually be found in San Francisco—that is, when she’s not traveling the world trying to share the joy of programming and make the tech community more diverse and accessible.