IA014 Advanced Functional Programming

Lecture IV - Polymorphism and Type Inference

Lecture dates

31. 3. 2021 (parametric polymorphism, system HM, type inference)

7. 4. 2021 (system F)

Reading

Books

  • [Pierce], chapter 23
  • H. Barendregt: Lambda Calculi with Types [PDF]

​Other

  • L. Damas and R. Milner: Principal type-schemes for functional programs [PDF]
    • ​The original  paper describing the type inference algorithm W
  • E. Marquart: Hindley-Milner Type Inference [PDF]
    • Easily accessible write-up on the type inference algorithm, by a student at TUM.
  • L. Cardelli, P. Wegner: On Understanding Types, Data Abstraction, and Polymorphism [ACM DL] (accessible from MU)
  • Wikipedia page on Hindley-Milner type system

Slides

Chyba: Odkazovaný objekt neexistuje nebo nemáte právo jej číst.
https://is.muni.cz/el/fi/jaro2021/IA014/um/04-HMpoly.pdf

Exercises

Chyba: Odkazovaný objekt neexistuje nebo nemáte právo jej číst.
https://is.muni.cz/el/fi/jaro2021/IA014/um/exercises/ex04.pdf

Tools

Lambda
Lambda calculus term evaluator (by Jakub Kadlecaj)

Lambda-Tree
Type derivation tree builder (by Martin Škrovina)

Lecture recordings

Chyba: Odkazovaný objekt neexistuje nebo nemáte právo jej číst.
https://is.muni.cz/el/fi/jaro2021/IA014/um/vid/2021-03-31_ia014.mp4

Chyba: Odkazovaný objekt neexistuje nebo nemáte právo jej číst.
https://is.muni.cz/el/fi/jaro2021/IA014/um/vid/2021-04-07a_ia014.mp4

Additional videos