1. Functions and pairs (1.1 1. variable binding, 1.2 2. let-expressions, 1.3 3. tail recursion, 1.4 4. product types)
2. Lists and recursion (2.1 1. constructing and deconstructing lists, 2.2 2. recursion over lists, 2.3 3. intro to polymorphism; parametric vs. ad-hoc polymorphism, 2.4 4. lists and tail recursion)
3. Higher-order functions (3.1 1. list processing with higher-order functions, 3.2 2. using predicates for testing: property-based testing with qcheck)
4. Algebraic datatypes (4.1 1. fundamentals of type inference and polymorphism, 4.2 2. creating enumeration types, 4.3 3. writing functions on enumeration types, 4.4 4. adding parameters to our constructors , 4.5 5. recursive algebraic datatypes)
5. Exceptions and exception handling (5.1 1. built-in exceptions and evaluation model, 5.2 2. exception handling, 5.3 3. declaring your own exceptions: the extensible exn type)
By the end of the course, students should be able to do the following:
Curriculum explorer: Click here
SCQF Level: 8
Credits: 15