Lecture 5: Functional programming

Teacher: Didier Remy

ML Type Grammar:
\[τ \; ≝ \; ⋯ \; \mid \; ∀α. σ\\ σ \; ≝ \; τ \; \mid \; ∀α. σ\]

In CamL:

  • iso-recursive types (when you have a match, you unfold)
  • equi-recursive types: objects

First-class polymorphism: polymorphic types can be instantiated by polymorphic types themselves.


You cannot combine local scoping and abstraction over dictionaries.

Leave a comment