15-150: Principles of Functional Programming

Lecture 3: Recursion and Induction

In this lecture, we learned about the tight coupling between recursion and induction.

We learned about how we could use the recursive leap of faith to help us write our recursive functions, a technique which resembles the usage of inductive hypotheses when proving theorems by mathematical induction.

We recapped the definitions of strong and simple induction on the natural numbers, and explored how we could use induction in the context of a programming language, by proving theorems on recursive functions.

We learned about some other fundamental SML language constructs, namely case expressions and let-in-end expressions. We also saw limited examples of lists, which let us store multiple values of a given type.


Some Notes on Induction