Overview
Syllabus
Haskell for Imperative Programmers #1 - Basics.
Haskell for Imperative Programmers #2 - Functions, Types, let & where.
Haskell for Imperative Programmers #3 - Recursion, Guards, Patterns.
Haskell for Imperative Programmers #4 - Lists and Tuples.
Haskell for Imperative Programmers #5 - List Exercises.
Haskell for Imperative Programmers #6 - Higher Order Functions & Anonymous Functions.
Haskell for Imperative Programmers #7 - Partial Function Application & Currying.
Haskell for Imperative Programmers #8 - Function Composition.
Haskell for Imperative Programmers #9 - Folding (foldr, foldl).
Haskell for Imperative Programmers #10 - Datatypes.
Haskell for Imperative Programmers #11 - Folding Exercises.
Haskell for Imperative Programmers #12 - Records.
Haskell for Imperative Programmers #13 - Typeclasses.
Haskell for Imperative Programmers #14 - Maybe.
Haskell for Imperative Programmers #15 - IO.
Haskell for Imperative Programmers #16 - Type inference.
Haskell for Imperative Programmers #17 - Monads.
Haskell for Imperative Programmers #18 - QuickCheck.
Haskell for Imperative Programmers #19 - Infinite Lists.
Haskell for Imperative Programmers #20 - Advanced Exercises.
Haskell for Imperative Programmers #21 - data, type & newtype.
Haskell for Imperative Programmers #22 - Either.
Haskell for Imperative Programmers #23 - Modules.
Haskell for Imperative Programmers #24 - Environment.
Haskell for Imperative Programmers #25 - Compiling Binaries.
Haskell for Imperative Programmers #26 - Strictness, Thunks & seq.
Haskell for Imperative Programmers #27 - Exceptions.
Haskell for Imperative Programmers #28 - Concurrency & Threads.
Haskell for Imperative Programmers #29 - Semaphores (QSem, QSemN).
Haskell for Imperative Programmers #30 - Software Transactional Memory (STM).
Haskell for Imperative Programmers #31 - Weak Head Normal Form.
Haskell for Imperative Programmers #32 - DeepSeq.
Haskell for Imperative Programmers #33 - Parallelism.
Haskell for Imperative Programmers #34 - Profiling.
Haskell for Imperative Programmers #35 - Semigroup & Monoid.
Haskell for Imperative Programmers #36 - Category Theory (Functors, Applicatives, Monads).
Haskell for Imperative Programmers #37 - Arrows.
Haskell for Imperative Programmers #38 - Monad Transformers.
Haskell for Imperative Programmers #39 - Induction Proofs.
Haskell for Imperative Programmers #40 - Termination Proofs.
Haskell for Imperative Programmers #41 - Formal Verification (using Isabelle).
Haskell for Imperative Programmers #42 - QuickSpec.
Haskell for Imperative Programmers #43 - Cabal.
Taught by
Philipp Hagenlocher