YoVDO

Haskell for Imperative Programmers

Offered By: YouTube

Tags

Haskell Courses Functional Programming Courses Higher-Order Functions Courses Monads Courses Recursion Courses Concurrency Courses Formal Verification Courses Type Inference Courses

Course Description

Overview

Dive into a comprehensive 12-hour video course designed for programmers familiar with imperative languages to learn Haskell, a purely functional programming language. Begin with the basics and progress through advanced topics including functions, recursion, higher-order functions, datatypes, typeclasses, monads, concurrency, parallelism, and formal verification. Explore key concepts such as list manipulation, partial function application, currying, and function composition. Gain hands-on experience with exercises in list folding and advanced problem-solving. Delve into practical aspects like compiling binaries, handling exceptions, and using software transactional memory. Discover theoretical foundations in category theory and learn to apply tools like QuickCheck and QuickSpec. Conclude with an introduction to Cabal, Haskell's package manager and build system.

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

Related Courses

4ever-clojure
Independent
Mastering Programming with MATLAB
Vanderbilt University via Coursera
Advanced Relational Database and SQL
Coursera Project Network via Coursera
算法设计与分析 Design and Analysis of Algorithms
Peking University via Coursera
算法基础 | Fundamental Algorithms
Peking University via edX