Course - Functional Programming MT22


The first course in programming, using Haskell as the programming language. This might seem like a strange choice for a first programming language rather than something more conventional like Python. The idea behind this choice is that that you can apply mathematical reasoning to programs, whether functional or not, but using a functional programming language makes this a lot easier to see.

For example, in the lecture on building a Sudoku solver, we started with an inefficient program (try every single solution) and then made logical deductions to end up with an equivalent but much faster program.

There is a very heavy focus on one particular concept: folds, which is also called reduce or accumulate in other programming languages. It was interesting but also took up a strangley large chunk of the course.

Notes

Lectures

Problem Sheets

Proofs




Related posts