Tags
Language
Tags
June 2025
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5
    Attention❗ To save your time, in order to download anything on this site, you must be registered 👉 HERE. If you do not have a registration yet, it is better to do it right away. ✌

    ( • )( • ) ( ͡⚆ ͜ʖ ͡⚆ ) (‿ˠ‿)
    SpicyMags.xyz

    Functional Programming With Scala Cats

    Posted By: ELK1nG
    Functional Programming With Scala Cats

    Functional Programming With Scala Cats
    Last updated 6/2022
    MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
    Language: English | Size: 2.06 GB | Duration: 12h 50m

    A journey into the world of typeclasses, the Cats library, and the functional way of doing things in Scala

    What you'll 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.
    Requirements
    Working knowledge of the Scala language (case classes, pattern matching, traits, implicits, etc.)
    Basic understanding of the Scala library (List, Map, Set, etc.)
    (Nice to have) Some experience using the basic higher order methods such as map, flatMap and fold
    Description
    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 monadI'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!

    Overview

    Section 1: Introduction

    Lecture 1 Introduction

    Lecture 2 Project Setup

    Lecture 3 Course files

    Section 2: Typeclasses

    Lecture 4 Introduction

    Lecture 5 Channel - Any

    Lecture 6 Channel - Any - Code

    Lecture 7 Channel - Inheritance

    Lecture 8 Channel - Inheritance - Code

    Lecture 9 Channel - Typeclasses

    Lecture 10 Channel - Typeclasses - Code

    Lecture 11 Channel - Typeclasses - Advantages

    Lecture 12 Implicits and Helper Methods

    Lecture 13 Implicits and Helper Methods - Code - Organizing instances

    Lecture 14 Implicits and Helper Methods - Code - Organizing instances #2

    Lecture 15 Implicits and Helper Methods - Code - Summoner method

    Lecture 16 Implicits and Helper Methods - Code - Instance method

    Lecture 17 Channel - Read

    Lecture 18 Channel - Read - Code

    Lecture 19 Laws

    Lecture 20 Laws - Code

    Lecture 21 Automatic instance derivation

    Lecture 22 Syntax

    Lecture 23 Syntax - Code

    Lecture 24 Summary

    Lecture 25 Assignment: Creating our own typeclass

    Section 3: Well known typeclasses

    Lecture 26 Introduction

    Lecture 27 Eq

    Lecture 28 Eq - Code

    Lecture 29 Order

    Lecture 30 Order - Code

    Lecture 31 Show

    Lecture 32 Show - Code

    Lecture 33 Monoid

    Lecture 34 Monoid - Code - Speed

    Lecture 35 Monoid - Code - Exercises

    Lecture 36 Higher Kinded Types

    Lecture 37 Functor

    Lecture 38 Functor - Code

    Lecture 39 Applicative

    Lecture 40 Applicative - Code - Validated

    Lecture 41 Applicative - Code - Option

    Lecture 42 Monad

    Lecture 43 Monad - Code - Option

    Lecture 44 Monad - Code - List

    Lecture 45 Monad - Code - Either

    Lecture 46 Monad - Code - Try

    Lecture 47 Monad Error

    Lecture 48 Monad Error - Code - Instances

    Lecture 49 Monad Error - Code - Example

    Lecture 50 Monad Error - Code - Additional Functions

    Lecture 51 Foldable - FoldRight

    Lecture 52 Foldable - FoldLeft

    Lecture 53 Foldable - Typeclass

    Lecture 54 Foldable - Code - MList

    Lecture 55 Foldable - Code - Find

    Lecture 56 Foldable - Code - Exists

    Lecture 57 Foldable - Code - To List

    Lecture 58 Foldable - Code - For All

    Lecture 59 Traverse

    Lecture 60 Traverse - Code - MList

    Lecture 61 Traverse - Code - Option

    Lecture 62 Testing - Box

    Lecture 63 Testing - Instances

    Lecture 64 Testing - Properties

    Lecture 65 Summary

    Lecture 66 Assignment: The Get Monad

    Section 4: Functional Techniques

    Lecture 67 Introduction

    Lecture 68 Validations

    Lecture 69 Validations - Code

    Lecture 70 Dependency Injection

    Lecture 71 Dependency Injection - Code - The Reader Monad

    Lecture 72 Dependency Injection - Code - Modularization

    Lecture 73 Dependency Injection - Code - Exercise

    Lecture 74 Tracking

    Lecture 75 Tracking - Code - The Writer Monad

    Lecture 76 Tracking - Code - Discounts Example

    Lecture 77 Tracking - Code - Exercise

    Lecture 78 State Management

    Lecture 79 State Management - Code - The State Monad

    Lecture 80 State Management - Code - Tic Tac Toe Example

    Lecture 81 Trampolines

    Lecture 82 Trampolines - Code - IsEven

    Lecture 83 Trampolines - Code - FlatMap

    Lecture 84 Evaluation Modes

    Lecture 85 Evaluation Modes - Code - The Eval Monad

    Lecture 86 Evaluation Modes - Code - Stream Example

    Lecture 87 TailRecM

    Lecture 88 Monad Transformers

    Lecture 89 Monad Transformers - Code - ReaderT

    Lecture 90 Monad Transformers - Code - OptionT

    Lecture 91 Suspending Side Effects

    Lecture 92 Suspending Side Effects - Code - IO

    Lecture 93 Suspending Side Effects - Code - Monad

    Lecture 94 Summary

    Section 5: Final Project

    Lecture 95 Introduction

    Lecture 96 Overview

    Lecture 97 Architecture

    Lecture 98 Validations

    Lecture 99 Generators

    Lecture 100 Person

    Lecture 101 Money

    Lecture 102 Expense

    Lecture 103 DebtByPayee

    Lecture 104 DebtByPayer

    Lecture 105 PersonService

    Lecture 106 ExpenseService

    Lecture 107 IO

    Lecture 108 Syntax

    Lecture 109 Command - readParticipants

    Lecture 110 Command - validateData

    Lecture 111 Command - findPerson

    Lecture 112 Command - addPerson

    Lecture 113 App

    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