Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Haskell for Imperative Programmers

via YouTube

Overview

This course aims to teach imperative programmers how to program in Haskell. By the end of the course, students will be able to understand and apply Haskell concepts such as functions, recursion, lists, higher-order functions, datatypes, typeclasses, monads, and concurrency. The course covers a wide range of topics including type inference, IO, monad transformers, and formal verification using Isabelle. The teaching method involves a combination of lectures, exercises, and hands-on coding assignments. This course is intended for programmers with experience in imperative languages who want to learn functional programming using Haskell.

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

Reviews

Start your review of Haskell for Imperative Programmers

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.