Welcome, this is the first page of my new free video course, Functional Programming in Depth.
At some point I’ll add an introductory video here, but for today I’ll just say that this course picks up where my earlier Introduction to Functional Programming video course left off. If you haven’t seen that video course, please check it out, as in this course I assume that you have watched those videos.
This course is heavily based on my book, Functional Programming, Simplified. That being said, you won’t need to buy that book because I show all the relevant pages as we go through this course.
In this course I spend a lot of time demonstrating how to manually “bind” pure functions together, and during that time I’ll take you through everything you need to know for that, and we’ll do things like create custom Scala types to work in for
expressions.
At the end, when we’ve covered everything you need to know, we’ll start writing ZIO 2 FP applications.
NOTE 1: Most of the text that accompanies the videos is also from my “Functional Programming, Simplified” book.
NOTE 2: The PDF version of my book, Learn Functional Programming The Fast Way, is now free!
Other lessons you might like (or need)
If you need other background material as you’re going through these lessons, please look at this page, which contains direct links to ALL of my previous free videos:
Some of the most important videos in that list you might need as a prerequisite for this video course are:
- The Scala REPL
- A Scala 3 “Hello, world” Example
- Functions: Functional Error Handling
- Functions: Passing Functions Into HOFs
- Functions: Multiple Input Parameter Groups
and:
- Higher-Order Functions, Part 1
- Higher-Order Functions, Part 2
- Higher-Order Functions, Part 3
- Higher-Order Functions, Part 4
- Receiving “Code Blocks” as Input Parameters
- Multiple Parameters Groups and Call By Name Parameters
- Introduction to Scala Types, Part 1 (Bounds)
- Introduction to Scala Types, Part 2 (Variance)
- Using Generic Type Parameters with Methods
- Classes That Use Generic Type Parameters, Part 1
- Classes That Use Generic Type Parameters, Part 2
- Bounds
and:
- Expression-Oriented Programming
- What is Functional Programming?
- Solving Problems With Pure Functions, Types, And EOP
- One More Thing: Algebraic Substitution
- Functional Error Handling (FEH)
- FEH: Option
- FEH: Try
- FEH: Either
- FEH: allCatch
- JIT: Understanding Errors in for-Expressions
- JIT: Using Option and Try in for-Expressions
- JIT: for Loops, Generators, and Guards
- JIT: Recursion
- App 2: Using Either Instead of Try
- How Either Relates to ZIO
- JIT: What’s an IO?
- JIT: IO and Algebraic Substitution
- JIT: IO, Option, Try, Either, and for-Expressions
- ZIO and the Power of IOs (Part 1)
- ZIO and the Power of IOs (Part 2)
- Bonus: The Mindset of a Functional Programmer
- Bonus: The M Word
On to the videos!
Without any further ado, click on the Next button below or any of the links on the left to get started.