Description
In this course, you will learn :
- How to write pure functions with pattern matching and recursion, as well as how to work with Haskell's powerful List data type.
- Learn the fundamentals of Haskell's powerful type system and create your own data types.
- You'll discover how to perform IO operations in Haskell.
- You'll have a new paradigm under your belt by the end of this course, and you'll be able to use functional programming in your own projects.
Syllabus :
1. First Steps with Haskell
- Numeric Types
- Predefined Functions on Numbers
- Booleans
- Characters
- Strings
- Writing Functions
- Pattern Matching on Literals
- Guarded Function Equations
- Tuples
- Functions with Multiple Arguments
- Currying
- Currying and Uncurrying
2. Techniques for Writing Functions
- Recursion
- Termination
- Lazy Evaluation
- Writing Recursive Functions
- Multiple Recursive Calls
- Writing Higher-Order Functions
- Lambda Expressions
- Functions and Operators
- Operator Association and Precedence
3. Working with Lists
- Introduction to Lists
- Common Functions on Lists
- Polymorphic types
- Recursive Functions on Lists
- Higher-Order Functions on Lists I: Map and Filter
- Higher-Order Functions on Lists II: Folds
- Laziness in Lists
- List Comprehension
4. Creating Data Types
- Defining Types with data
- Nesting Custom Types
- Introduction to Type Classes
- Important Type Classes
- Type Synonyms and newtype Wrappers
- Creating Polymorphic Types
- Creating Recursive Types
5. Input and Output
- IO By Example
- More IO Functions
- Do Notation