Functional-Light JavaScript, v3

Functional-Light JavaScript, v3

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 10h 01m | 2.60 GB

Learn to apply functional programming concepts in JavaScript to make your programs more readable and less error-prone! Kyle Simpson will walk you through the core concepts of functional programming like function purity, point-free style, partial-application, currying, composition, immutability, recursion, and list operations like map/reduce/filter. You’ll go even deeper with monads and transduction, two more techniques to add to your tool belt!

Table of Contents

Introduction
1 Introduction
2 Why Functional Programming
3 Functional Programming Journey
4 Code is Provable
5 Course Overview

Function Purity
6 Functions vs Procedures
7 Function Naming Semantics
8 Side Effects
9 Pure Functions & Constants
10 Reducing Surface Area
11 Same Input, Same Output
12 Level of Confidence
13 Extracting Impurity
14 Containing Impurity
15 Impurity Exercise – Wrappers & Adapters
16 Impurity Solution – Wrappers
17 Impurity Solution – Adapters

Argument Adapters
18 Function Arguments
19 Arguments Shape Adapters
20 Flip & Reverse Adapter
21 Spread Adapter

Point Free
22 Equational Reasoning
23 Point Free Refactor
24 Point Free Exercise
25 Point Free Solution
26 Advanced Point Free

Closure
27 Closure
28 Closure Exercise
29 Closure Solution
30 Lazy vs Eager Execution
31 Memoization
32 Referential Transparency
33 Generalized to Specialized
34 Partial Application & Currying
35 Partial Application & Currying Comparison
36 Changing Function Shape with Curry

Composition
37 Composition Illustration
38 Declarative Data Flow
39 Piping vs Composition
40 Piping & Composition Exercise
41 Piping & Composition Solution
42 Associativity
43 Composition with Currying

Immutability
44 Immutability
45 Rethinking const Immutability
46 Value Immutability
47 Object.freeze
48 Don’t Mutate, Copy
49 Immutable Data Structures
50 Immutable.js Overview
51 Immutability Exercise
52 Immutability Solution

Recursion
53 Recursion
54 Base Condition Location
55 Recursion Exercise
56 Recursion Solution
57 Stack Frames & Memory Limits
58 Optimization – Tail Calls
59 Proper Tail Calls
60 Refactoring to PTC Form
61 Continuation-Passing Style
62 Trampolines
63 CPS & Trampolines Q&A

List Operations
64 Map – Transformation
65 Filter – Inclusion
66 Reduce – Combination
67 Composition with Reduce
68 List Operations Exercise
69 List Operations Solution – add & constant
70 List Operations Solution – addn
71 List Operations Solution – Modify Collection
72 Fusion

Transduction
73 Transduction
74 Transduction Q&A
75 Deriving Transduction – Extracting Reduce
76 Deriving Transduction – Combiner & Currying
77 Deriving Transduction – Single Reduce
78 Derivation Summary and Q&A

Data Structure Operations
79 Data Structure Operations
80 Object Filter & Reduce Exercise
81 Object Filter & Reduce Solution
82 Advanced Point Free Exercise
83 Advanced Point Free Solution
84 Monad Data Structures
85 Just Monad
86 Maybe Monad
87 Monads Q&A

Async
88 Map Lazy & Lazy Array
89 Observables
90 Reactive Programming with Rx.js
91 Async with Rx.js Exercise
92 Async with Rx.js Solution

Functional JS Utils
93 Lodash-FP
94 Ramda
95 FPO

Wrapping Up
96 Wrapping Up