Functional Programming with Scala Cats
Functional Programming with Scala Cats, available at $74.99, has an average rating of 4.05, with 114 lectures, 3 quizzes, based on 275 reviews, and has 1783 subscribers.
You will learn about Create own typeclasses Write and use lawful instances of well-known typeclasses such as Functors, Applicatives, Monads, etc. Perform common programming tasks (validation, dependency injection, state management, etc.) in a functional way. This course is ideal for individuals who are Scala developers with 1 or 2 years of experience who want to learn the functional side of the language or Students who have completed an introductory Scala course and are willing to learn more advanced features It is particularly useful for Scala developers with 1 or 2 years of experience who want to learn the functional side of the language or Students who have completed an introductory Scala course and are willing to learn more advanced features.
Enroll now: Functional Programming with Scala Cats
Summary
Title: Functional Programming with Scala Cats
Price: $74.99
Average Rating: 4.05
Number of Lectures: 114
Number of Quizzes: 3
Number of Published Lectures: 113
Number of Published Quizzes: 3
Number of Curriculum Items: 117
Number of Published Curriculum Objects: 116
Original Price: $19.99
Quality Status: approved
Status: Live
What You Will Learn
- Create own typeclasses
- Write and use lawful instances of well-known typeclasses such as Functors, Applicatives, Monads, etc.
- Perform common programming tasks (validation, dependency injection, state management, etc.) in a functional way.
Who Should Attend
- Scala developers with 1 or 2 years of experience who want to learn the functional side of the language
- Students who have completed an introductory Scala course and are willing to learn more advanced features
Target Audiences
- Scala developers with 1 or 2 years of experience who want to learn the functional side of the language
- Students who have completed an introductory Scala course and are willing to learn more advanced features
When we start our journey as a Scala developer, our first impression of the language may be that of ‘a better Java’. We learn about classes, traits, pattern matching and some other constructs that make our life easier. At some point we come across the amazing higher-order methods such as map, filter and fold. These serve as a great first taste of functional programming.
But what if I told you that there is much more than that? In this course I will show you how standard functional programming practices can help you write code that is more generic, robust and testable.
This course is divided into 3 main sections.
In the first section, we will learn about typeclasses. We will use as a driving example the problem of encoding and decoding objects into and from bytes. By the end of this section you will be able to create your own typeclasses and use the typeclass pattern to write polymorphic code.
In the second section, we will take a look at some of the most common typeclasses in functional programming, including Monads, Applicatives, Functors and many more. We will use the famous Cats library to provide us with their implementations, and we will use Discipline along with ScalaCheck and ScalaTest to test their laws. By the end of this section, you will be able to write lawful instances of these typeclasses for any of your types, and test their validity in an automated manner.
In the third and final section, we will learn to perform many common programming tasks with functional structures. These tasks include:
– Validations via the Validated datatype
– Dependency injection with the Reader monad
– Tracking data in our computations with the Writer monad
– Managing state with the State monad
– Writing stack safe computations with Trampolines
– Making computations lazy with the Eval monad
– Composing monad stacks via monad transformers such as ReaderT and OptionT
– Suspending effects with a simple but useful implementation of the IO monad
I’m a big believer of learning by doing so I’ve included a lot of in-video exercises, along with quizzes and assignments at the end of each section. I hope you enjoy doing them as much as I enjoyed putting them together!
Without further ado, I want to give you a big welcome to the course and the thrilling world of functional programming!
Course Curriculum
Chapter 1: Introduction
Lecture 1: Introduction
Lecture 2: Project Setup
Lecture 3: Course files
Chapter 2: Typeclasses
Lecture 1: Introduction
Lecture 2: Channel – Any
Lecture 3: Channel – Any – Code
Lecture 4: Channel – Inheritance
Lecture 5: Channel – Inheritance – Code
Lecture 6: Channel – Typeclasses
Lecture 7: Channel – Typeclasses – Code
Lecture 8: Channel – Typeclasses – Advantages
Lecture 9: Implicits and Helper Methods
Lecture 10: Implicits and Helper Methods – Code – Organizing instances
Lecture 11: Implicits and Helper Methods – Code – Organizing instances #2
Lecture 12: Implicits and Helper Methods – Code – Summoner method
Lecture 13: Implicits and Helper Methods – Code – Instance method
Lecture 14: Channel – Read
Lecture 15: Channel – Read – Code
Lecture 16: Laws
Lecture 17: Laws – Code
Lecture 18: Automatic instance derivation
Lecture 19: Syntax
Lecture 20: Syntax – Code
Lecture 21: Summary
Lecture 22: Assignment: Creating our own typeclass
Chapter 3: Well known typeclasses
Lecture 1: Introduction
Lecture 2: Eq
Lecture 3: Eq – Code
Lecture 4: Order
Lecture 5: Order – Code
Lecture 6: Show
Lecture 7: Show – Code
Lecture 8: Monoid
Lecture 9: Monoid – Code – Speed
Lecture 10: Monoid – Code – Exercises
Lecture 11: Higher Kinded Types
Lecture 12: Functor
Lecture 13: Functor – Code
Lecture 14: Applicative
Lecture 15: Applicative – Code – Validated
Lecture 16: Applicative – Code – Option
Lecture 17: Monad
Lecture 18: Monad – Code – Option
Lecture 19: Monad – Code – List
Lecture 20: Monad – Code – Either
Lecture 21: Monad – Code – Try
Lecture 22: Monad Error
Lecture 23: Monad Error – Code – Instances
Lecture 24: Monad Error – Code – Example
Lecture 25: Monad Error – Code – Additional Functions
Lecture 26: Foldable – FoldRight
Lecture 27: Foldable – FoldLeft
Lecture 28: Foldable – Typeclass
Lecture 29: Foldable – Code – MList
Lecture 30: Foldable – Code – Find
Lecture 31: Foldable – Code – Exists
Lecture 32: Foldable – Code – To List
Lecture 33: Foldable – Code – For All
Lecture 34: Traverse
Lecture 35: Traverse – Code – MList
Lecture 36: Traverse – Code – Option
Lecture 37: Testing – Box
Lecture 38: Testing – Instances
Lecture 39: Testing – Properties
Lecture 40: Summary
Lecture 41: Assignment: The Get Monad
Chapter 4: Functional Techniques
Lecture 1: Introduction
Lecture 2: Validations
Lecture 3: Validations – Code
Lecture 4: Dependency Injection
Lecture 5: Dependency Injection – Code – The Reader Monad
Lecture 6: Dependency Injection – Code – Modularization
Lecture 7: Dependency Injection – Code – Exercise
Lecture 8: Tracking
Lecture 9: Tracking – Code – The Writer Monad
Lecture 10: Tracking – Code – Discounts Example
Lecture 11: Tracking – Code – Exercise
Lecture 12: State Management
Lecture 13: State Management – Code – The State Monad
Lecture 14: State Management – Code – Tic Tac Toe Example
Lecture 15: Trampolines
Lecture 16: Trampolines – Code – IsEven
Lecture 17: Trampolines – Code – FlatMap
Lecture 18: Evaluation Modes
Lecture 19: Evaluation Modes – Code – The Eval Monad
Lecture 20: Evaluation Modes – Code – Stream Example
Lecture 21: TailRecM
Lecture 22: Monad Transformers
Lecture 23: Monad Transformers – Code – ReaderT
Lecture 24: Monad Transformers – Code – OptionT
Lecture 25: Suspending Side Effects
Lecture 26: Suspending Side Effects – Code – IO
Lecture 27: Suspending Side Effects – Code – Monad
Lecture 28: Summary
Instructors
-
Leandro Galvan
Senior Software Engineer
Rating Distribution
- 1 stars: 4 votes
- 2 stars: 5 votes
- 3 stars: 20 votes
- 4 stars: 91 votes
- 5 stars: 155 votes
Frequently Asked Questions
How long do I have access to the course materials?
You can view and review the lecture materials indefinitely, like an on-demand channel.
Can I take my courses with me wherever I go?
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don’t have an internet connection, some instructors also let their students download course lectures. That’s up to the instructor though, so make sure you get on their good side!
You may also like
- Digital Marketing Foundation Course
- Google Shopping Ads Digital Marketing Course
- Multi Cloud Infrastructure for beginners
- Master Lead Generation: Grow Subscribers & Sales with Popups
- Complete Copywriting System : write to sell with ease
- Product Positioning Masterclass: Unlock Market Traction
- How to Promote Your Webinar and Get More Attendees?
- Digital Marketing Courses
- Create music with Artificial Intelligence in this new market
- Create CONVERTING UGC Content So Brands Will Pay You More
- Podcast: The top 8 ways to monetize by Podcasting
- TikTok Marketing Mastery: Learn to Grow & Go Viral
- Free Digital Marketing Basics Course in Hindi
- MailChimp Free Mailing Lists: MailChimp Email Marketing
- Automate Digital Marketing & Social Media with Generative AI
- Google Ads MasterClass – All Advanced Features
- Online Course Creator: Create & Sell Online Courses Today!
- Introduction to SEO – Basic Principles of SEO
- Affiliate Marketing For Beginners: Go From Novice To Pro
- Effective Website Planning Made Simple