15-150: Principles of Functional Programming
Lecture 3: Recursion and Induction
Key Concepts
- Recursive functions
- Proofs of correctness
- Standard (mathematical) induction ---
Mathematical induction can be useful when an integer
variable is reduced by 1 in the recursive part of a function.
- Strong induction --- Strong induction can be useful when an integer
variable is reduced by more than 1.
- Structural induction --- Structural induction can be useful for recursion over datatypes more general than integers.
- Correspondence between recursive function
clauses and proof by induction.
Here is an introduction to
lists.
(There will be additional notes about structural
induction over lists and trees next time.)