Category Theory and Functional Programming
Standard concepts in functional programming are treated with concrete examples.
Textbook
Haskell - the craft of functional programming (3rd edition) Simon Thompson Addison Wesley
We will quickly overview chapters from 1 to 12 and go through hands-on sessions based on chapters 13-20.
Theme | You will be able to ... | Link to materials | |
---|---|---|---|
1 | Orientation | decide whether to enroll or not | chapter 1 |
2 | Heskell programming environment | work with basic types and define your own types | chapters 2-4 |
3 | Functions over lists | write programs that deal with lists | chapters 5-7 |
4 | I/O and proofs | write interactive programs and prove the correctness of programs | chapters 8-9 |
5 | Higher order functions | understand make use of patterns of computation | chapters 10-12 |
6 | Overloading and type classes | make use of generic class | chapter 13 |
7 | Polymorphism | make use of algebraic types | chapter 14 |
8 | Case study: Huffman codes | put basic ideas into practice | chapter 15 |
9 | Abstract data types | understand further abstraction | chapter 16 |
10 | Lazy programming | understand how lazyness is crucial | chapter 17 |
11 | Monads | deal with behavior and state | chapter 18 |
12 | Domain specific languages | extend the Haskell language with your own idea | chapter 19 |
13 | Time and space behavior | estimate the time and space complexities | chapter 20 |
14 | Functional, imperative, and OO programming | state what functional programming is all about | Appendix A |
15 | Review |