Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Haskell from Scratch
Module 1: Expressions, Types, and Functions
1-1: Course Introduction (3:17)
1-2: Basic Types (2:56)
1-3: Compound Types (3:37)
1-4: Functions and Operators (6:08)
1-5: Writing Haskell Files (3:49)
1-6: Beyond Basic Syntax (10:05)
1-7: Anonymous Functions and Operators (3:58)
1-8: Purity, Immutability and Laziness (5:26)
1-9: Module 1 Review (1:39)
Module 2: Data Types and Typeclasses
2-1: Creating Types (5:21)
2-2: Types and Newtypes (4:08)
2-3: Parameterized Types (2:13)
2-4: Building our Own Lists and Tuples (4:54)
2-5: Typeclasses I (4:19)
2-6: Typeclasses II (4:00)
2-7: Writing Our Own Typeclasses (2:55)
2-8: Polymorphic Data and Functions (3:56)
2-9: Module 2 Review (1:39)
Module 3: Lists and Recursion
3-1: Creating Lists (5:47)
3-2: Recursion (5:09)
3-3: Tail Recursion (3:39)
3-4: Higher Order Functions I (4:50)
3-5: Higher Order Functions II (4:51)
3-6: List Comprehensions (5:01)
3-7: Maps (6:11)
3-8: Module 3 Review (1:16)
Module 4: The IO Monad
4-1: Printing, Do Syntax, and Input (5:47)
4-2: Reading Arguments and Files (4:31)
4-3: Writing Output to Files (2:14)
4-4: Monadic Syntax, Combinators, and Exceptions (6:47)
4-5: Accessing the File System (3:03)
4-6: Threads and MVars (2:49)
4-7: Channels and STM (2:36)
4-8: Module 4 Review (2:16)
Module 5: Functional Data Structures
5-1: Intro to Functional Structures (2:02)
5-2: Monoids and Semigroups (4:32)
5-3: Functors (5:35)
5-4: Applicative Functors (5:56)
5-5: Monads (7:49)
5-6: Reader and Writer Monads (4:58)
5-7: State Monad (3:36)
5-8: Monad Transformers (4:20)
5-9: Module 5 Review (1:30)
Module 6: Data and Conversions
6-1: Module 6 Introduction (2:09)
6-2: Text (4:20)
6-3: Bytestrings (2:38)
6-4: String Conversions (4:50)
6-5: Overloaded Strings and StringConv (3:45)
6-6: Integral Types (4:04)
6-7: Floating Point Types (3:16)
6-8: Converting Numbers (5:32)
6-9: Module 6 Review (1:52)
Module 7: Solving Functional Problems
7-1: Fibonacci Numbers (4:08)
7-2: Knapsack (3:33)
7-3: Memoization (2:46)
7-4: Greatest Common Divisor (2:43)
7-5: Validating a Binary Search Tree (4:49)
7-6: Fences Problem (5:19)
7-7: Dynamic Programming and the Coins Problem (4:21)
7-8: Course Conclusion (3:44)
Mini Project: Haskell Code Generator!
Final Project Download
Screencast I: Parsing YAML into SAS (13:04)
Screencast II: Testing Output (6:51)
Answers
Bonus Content: Making Sense of Monads
1: Introduction (5:07)
2: Monoids and Semigroups (4:32)
3: Functors (3:59)
4: Applicative Functors (4:59)
5: Monad Basics (6:43)
6: Do Syntax (6:28)
7: Reader and Writer Monads (6:21)
8: State Monad (4:45)
9: IO Monad (7:35)
10: File System Operations (8:26)
11: Monad Transformers (7:52)
12: Monad Laws (8:04)
13: Parsing Basics (13:46)
14: GEDCOM Parsing Challenge (5:11)
15: Conclusion (3:55)
Teach online with
1-3: Compound Types
Complete and Continue