Skip to content

Lectures

As we proceed through the lectures, I will try to write down lecture notes so that you have most of the course material in a single place. However, I am unsure if I will manage to be on time with them due to other obligations.

Lecture 01: Introduction

Discusses the key ideas behind functional programming. It further introduces the programming language Racket.

Slides. Log.

Lecture 02: Lists & Trees

Focuses on Racket lists and trees. Further, it introduces the unit testing library Rackunit.

Slides. Log.

Lecture 3: Higher Order Functions

Deals with higher-order functions like (map, filter, foldl), function closures and Racket structures.

Slides. Log.

Lecture 4: Lazy Evaluation

Introduces pattern matching, and explains how to implement lazy evaluation and streams in Racket.

Slides. Log.

Lecture 5: Macros & Interpreters

Briefly introduces syntactic macros, and shows how to implement interpreters (the latter is remains to be written).

Slides. Log. Brainf*ck.rkt.

Lecture 6: Lambda Calculus

Describes the basics of lambda calculus to show you were most of the initial ideas for functional programming came from.

Slides. Lambda-calculus.rkt.

Bonus Lecture: Immutable datastructures

For the interested read there is another lecture on immutable datastructures like random access lists.

Lecture 7: Introduction to Haskell

Slides. Log.

Lecture 8: Haskell Types

Discusses the strongly-typed, static, and inferred type system of Haskell including: parametric polymorphism, ad-hoc polymorphism (typeclasses), and algebraic datatypes.

Slides. Log.

Lecture 9: Type Classes

We discuss some more examples of type classes, most importantly Functors.

Slides. Log.

Lecture 10: Haskell's IO & Monads

Slides. Log.

Lecture 11: Monadic Parsing

Slides. Log. Parser.hs.

Lecture 12: State Monad

Slides. Log. State.hs. StateIO.hs.

Lecture 13: Monoids & Foldables

Lecture notes coming soon!

Slides. Log. Dataset.

Lecture 14: Parallel Haskell

pfold.hs. parmaze.hs.

Old recorded lectures

Old recorded lectures from 2021 can be found here.