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

Paradigms of Computer Programming – Fundamentals
Université catholique de Louvain via edX
Paradigms of Computer Programming – Abstraction and Concurrency
Université catholique de Louvain via edX
Computing: Art, Magic, Science - Part II
ETH Zurich via edX
Concurrency
AdaCore via Independent
Java Fundamentals for Android Development
Galileo University via edX