course-plan
Course plan for the Haskell Beginners 2022 course.
🏡
Lecture 1: Fundamentals
- What is Functional Programming?
- Haskell features
- Haskell toolchain: GHC, GHCi, ghcup, cabal, hls
- How to install Haskell?
- GHCi
- Arithmetic expressions
- Comparison operators
- Boolean expressions
- Calling functions
- Types
- Defining our own functions
- Defining our own operators
- Lists and operations with them
- Prepending, concatenation
- Ranges
- take, drop, concat
- String
- Immutability
- Laziness
- Syntax constructions
- if-then-else
- guards
- let-in
- where
- Higher-Order Functions
- Function composition
- Language Extensions
Slides: https://slides.com/haskellbeginners2022/lecture-1
🏗
Lecture 2: Data types
- Type aliases
- Product types
- Records
- Sum types
- Algebraic Data Types
- Pattern-matching
- Totality
- Polymorphic data types
- newtypes
- modules, imports
Slides: https://slides.com/haskellbeginners2022/lecture-2
🎮
Lecture 3: Typeclasses
- Typeclasses
- Instances
- InstanceSigs
- Default methods
- Standard typeclasses
- deriving
- Kinds
- Higher-Kinded Typeclasses
- Functor
Slides: https://slides.com/haskellbeginners2022/lecture-3
🔈
🎤
Lecture 4: Monads and IO
- Monad typeclass
- Monad instances
- General monadic functions
- What is IO?
- Why does IO require a monad?
- Simple IO functions (putStrLn, getLine, readFile, writeFile)
- do-notation
- Separting side-effects from pure functions