Tags
Language
Tags
October 2025
Su Mo Tu We Th Fr Sa
28 29 30 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 31 1
    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

    Scala Advanced, Part 3 - Functional Programming, Performance

    Posted By: ELK1nG
    Scala Advanced, Part 3 - Functional Programming, Performance

    Scala Advanced, Part 3 - Functional Programming, Performance
    Last updated 3/2023
    MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
    Language: English | Size: 1.71 GB | Duration: 4h 54m

    Advanced Functional Programming, Macros, Parser-Combinators, Performance, Profiling, Optimizing

    What you'll learn

    Advanced Functional Programming, Tail Calls, Trampolines, Functors, Monads, Applicative Functors, Different Monad Patterns

    Macros, Scala Compiler Phases, Abstract Syntax Trees, Quasiquotes, When and how to use macros

    Parser Combinators, External DSLs, Grammar Translation, Transformers, Parsing, Packrat Parsers

    Performance Optimization, JVM Performance Tricks, Profiling, Visual VM

    Requirements

    You should be a developer with day to day working experience of Scala

    It is recommended that you complete Parts 1 and 2 of the Escalate Scala Advanced course

    You may also wish to consider following parts 1-3 of the Escalate Applied Scala course if you have trouble following these concepts

    You will need a sufficiently powerful computer and to follow the included setup instructions to run the hands-on exercises

    Description

    The Escalate Software Scala Advanced course is intended for experienced Scala developers looking to improve their skills, particularly for library and API design and development. It covers topics needed to be effective in producing high quality, correct, powerful and flexible Scala libraries that are still easy to use by others.This course assumes you have day-to-day Scala development skills equivalent to having taken the Scala Advanced course parts  1  and 2 from Escalate Software. If you have trouble understanding or following the concepts in this course because some of the concepts being presented are assuming something you are unfamiliar with, then we would recommend you check out the Applied courses as these will answer many of your questions.Part 3 covers advanced functional programming concepts and patterns, use of Macros, how to write external DSLs with the parser-combinator library, and how to effectively optimize code by analyzing performance:Functional Programming Building Blocks: ADTs, trampolines, recursion, functionsFunctional Programming Patterns: Functors, Monads, Applicative FunctorsCommon Functional Patterns: IO, Reader, Writer, State, FreeMacros and QuasiquotesExternal DSLs and Scala's Parser-Combinator LibraryProfiling and OptimizationCode Performance ConsiderationsIt is recommended that you complete Scala Advanced parts 1 and 2 before taking this part. While not strictly necessary, we may assume knowledge from parts 1 and 2 in some of the explanations that could be hard to follow unless you know the material.This is the final part of the Advanced Scala course. We hope you enjoyed the course and that the material proves useful.

    Overview

    Section 1: Setup Instructions

    Lecture 1 Introduction

    Section 2: Module 12 - FP part 1, Tail Calls, Trampolines, ADTs

    Lecture 2 Module 12 - 01 - Introduction

    Lecture 3 Module 12 - 02 - Agenda

    Lecture 4 Module 12 - 03 - Recursion vs Loops

    Lecture 5 Module 12 - 04 - Recursive Factorial

    Lecture 6 Module 12 - 05 - Tail Recursive Factorial

    Lecture 7 Module 12 - 06 - Puzzler - Fibonacci

    Lecture 8 Module 12 - 07 - Mutual Calling Functions

    Lecture 9 Module 12 - 08 - Recursive Even/Odd

    Lecture 10 Module 12 - 09 - ADTs Recap

    Lecture 11 Module 12 - 10 - First Trampoline

    Lecture 12 Module 12 - 11 - Even/Odd Trampoline

    Lecture 13 Module 12 - 12 - Using Trampolines

    Lecture 14 Module 12 - 13 - Scala TailCalls

    Lecture 15 Module 12 - 14 - Higher Order Functions Recap

    Section 3: Module 13 - Functors, Monads, Applicative Functors

    Lecture 16 Module 13 - 01 - Introduction

    Lecture 17 Module 13 - 02 - Agenda

    Lecture 18 Module 13 - 03 - Options Recap

    Lecture 19 Module 13 - 04 - Implementing Option

    Lecture 20 Module 13 - 05 - A Functor

    Lecture 21 Module 13 - 06 - A Monad

    Lecture 22 Module 13 - 07 - Optional In Use

    Lecture 23 Module 13 - 08 - Guards, withFilter

    Lecture 24 Module 13 - 09 - Testing the Guard

    Lecture 25 Module 13 - 10 - Functor Laws

    Lecture 26 Module 13 - 11 - Monad Laws

    Lecture 27 Module 13 - 12 - Applicative Functors

    Lecture 28 Module 13 - 13 - Applicative Functors with Functions

    Lecture 29 Module 13 - 14 - Cartesian Syntax and Alternatives

    Lecture 30 Module 13 - 15 - Functor/Monad Patterns

    Lecture 31 Module 13 - 16 - IO

    Lecture 32 Module 13 - 17 - Composing IO

    Lecture 33 Module 13 - 18 - Reader

    Lecture 34 Module 13 - 19 - Writer

    Lecture 35 Module 13 - 20 - State

    Lecture 36 Module 13 - 21 - Free

    Lecture 37 Module 13 - 22 - Free ADT

    Lecture 38 Module 13 - 23 - Free Composition

    Lecture 39 Module 13 - 24 - Free - A Full Program

    Lecture 40 Module 13 - 25 - Free, the Interpreter

    Lecture 41 Module 13 - 26 - Running Free

    Section 4: Module 14 - Macros

    Lecture 42 Module 14 - 01 - Introduction

    Lecture 43 Module 14 - 02 - Agenda

    Lecture 44 Module 14 - 03 - First Rule of Macros

    Lecture 45 Module 14 - 04 - Scala Compiler Phases

    Lecture 46 Module 14 - 05 - Abstract Syntax Trees

    Lecture 47 Module 14 - 06 - Macro Overview

    Lecture 48 Module 14 - 07 - A Demo Macro

    Lecture 49 Module 14 - 08 - Setting Up the Pieces

    Lecture 50 Module 14 - 09 - A Macro That Does Nothing

    Lecture 51 Module 14 - 10 - Macro With Generic Type Parameters

    Lecture 52 Module 14 - 11 - Quasiquotes

    Lecture 53 Module 14 - 12 - Doing More with Quasiquotes

    Lecture 54 Module 14 - 13 - A Function Describing Macro

    Lecture 55 Module 14 - 14 - Narrowing the Return Type

    Lecture 56 Module 14 - 15 - Compiler Warnings and Errors

    Lecture 57 Module 14 - 16 - Creating a Compiler Warning

    Lecture 58 Module 14 - 17 - Macro Limitations

    Lecture 59 Module 14 - 18 - Final Words

    Section 5: Module 15 - Parser Combinators

    Lecture 60 Module 15 - 01 - Introduction

    Lecture 61 Module 15 - 02 - Agenda

    Lecture 62 Module 15 - 03 - External DSLs

    Lecture 63 Module 15 - 04 - A Basic Grammar

    Lecture 64 Module 15 - 05 - Simple Parser Combinators

    Lecture 65 Module 15 - 06 - Token Parsers

    Lecture 66 Module 15 - 07 - Types and Transformers

    Lecture 67 Module 15 - 08 - Richer Types

    Lecture 68 Module 15 - 09 - StatementLine ADT

    Lecture 69 Module 15 - 10 - Next and Goto

    Lecture 70 Module 15 - 11 - BNF Translation

    Lecture 71 Module 15 - 12 - The Print Statement

    Lecture 72 Module 15 - 13 - The For Statement

    Lecture 73 Module 15 - 14 - Complete Line, and Parsing

    Lecture 74 Module 15 - 15 - Trying It Out

    Lecture 75 Module 15 - 16 - Packrat Parsers

    Section 6: Module 16 - Performance and Optimization

    Lecture 76 Module 16 - 01 - Introduction

    Lecture 77 Module 16 - 02 - Agenda

    Lecture 78 Module 16 - 03 - When and Where to Optimize

    Lecture 79 Module 16 - 04 - First Things First

    Lecture 80 Module 16 - 05 - Collections

    Lecture 81 Module 16 - 06 - Vector vs List

    Lecture 82 Module 16 - 07 - List Head vs Tail Operations

    Lecture 83 Module 16 - 08 - Arrays

    Lecture 84 Module 16 - 09 - Register Based Arithmetic

    Lecture 85 Module 16 - 10 - Timing Runs

    Lecture 86 Module 16 - 11 - Bitwise Operations

    Lecture 87 Module 16 - 12 - While Loops and Tail Calls

    Lecture 88 Module 16 - 13 - While vs TailRec

    Lecture 89 Module 16 - 14 - Library Calls

    Lecture 90 Module 16 - 15 - sqrt, Trancendentals

    Lecture 91 Module 16 - 16 - Other Performance Gotchas

    Lecture 92 Module 16 - 17 - Find the Hot Spots

    Lecture 93 Module 16 - 18 - VisualVM

    Lecture 94 Module 16 - 19 - Using VisualVM

    Lecture 95 Module 16 - 20 - Profiling Demo

    Lecture 96 Module 16 - 21 - Caching

    Scala developers looking to improve their skills, write libraries and APIs for others,Developers wanting to improve their knowledge of more advanced functional programming concepts,Developers wishing to learn how to save time and money by profiling and optimizing applications,Anyone who wants to be able to parse and use external DSLs in Scala