Functional Simplicity: An Introduction to the Lambda Calculus
In this teaching session, I will introduce the lambda calculus, an absurdly simple programming language that nonetheless has the same power as modern programming languages. When writing programs in Python, Java, or C, we combine numbers, names, and other symbols to capture mathematical operations, control program execution (loops and conditionals), and express high-level concepts like objects and types. While the lambda calculus provides none of these features explicitly, we will see how it can express many familiar programming concepts with just three constructs: functions, variables, and function application. By learning the lambda calculus--the theoretical underpinning of functional languages like Haskell and ML-- programmers can gain a deeper understanding of all programming languages.
Host: Professor Kathi Fisler