Haskell
Full Haskell course — 55 topics from the basics to advanced use.
Lessons
- Laziness and Strictness
- Error Handling and Exceptions
- Essential Data Structures
- Common Monads: Reader, Writer, State
- Monad Transformers and mtl
- Parsing with Parser Combinators
- JSON, Files and Command-Line Apps
- Concurrency: Threads and MVar
- Software Transactional Memory
- The async Library
- Parallelism
- Introduction to Haskell
- Installation, Tools and GHCi
- Expressions, Values and Basic Types
- Functions
- Lists, Tuples and Strings
- Pattern Matching, Guards and Local Bindings
- Recursion
- Higher-Order Functions
- Language Extensions Overview
- Kinds and Higher-Kinded Types
- Rank-N Types and Existential Types
- GADTs
- Type Families and Functional Dependencies
- DataKinds and Type-Level Programming
- Deriving Strategies, Generics and Coercible
- Linear Types and Dependent Types Outlook
- Lenses and Optics
- Free Monads and Effect Systems
- Category Theory for Haskellers
- Streaming
- Template Haskell and Quasi-Quotes
- Testing
- Performance, Profiling and Benchmarking
- Foreign Function Interface
- Web Development
- Databases
- Application Architecture Patterns
- Build Tools, Packaging and Deployment
- GHC Internals, History and Best Practices
- Appendices: Projects, Interview Questions, Cheat Sheet & Study Plan
- Type Signatures, Polymorphism and Type Inference
- Algebraic Data Types
- Records
- Type Classes
- Maybe, Either and Total Functions
- Folds
- Modules and Project Structure
- Semigroup and Monoid
- Functor
- Applicative
- Monad
- Foldable and Traversable
- IO and Interacting with the World
- Course Overview