Functional-Light JavaScript, v3
Offered By: Frontend Masters
Course Description
Overview
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!
Syllabus
- Introduction
- Why Functional Programming
- Functional Programming Journey
- Code is Provable
- Course Overview
- Functions vs Procedures
- Function Naming Semantics
- Side Effects
- Pure Functions & Constants
- Reducing Surface Area
- Same Input, Same Output
- Level of Confidence
- Extracting Impurity
- Containing Impurity
- Impurity Exercise: Wrappers & Adapters
- Impurity Solution: Wrappers
- Impurity Solution: Adapters
- Function Arguments
- Arguments Shape Adapters
- Flip & Reverse Adapter
- Spread Adapter
- Equational Reasoning
- Point Free Refactor
- Point Free Exercise
- Point Free Solution
- Advanced Point Free
- Closure
- Closure Exercise
- Closure Solution
- Lazy vs Eager Execution
- Memoization
- Referential Transparency
- Generalized to Specialized
- Partial Application & Currying
- Partial Application & Currying Comparison
- Changing Function Shape with Curry
- Composition Illustration
- Declarative Data Flow
- Piping vs Composition
- Piping & Composition Exercise
- Piping & Composition Solution
- Associativity
- Composition with Currying
- Immutability
- Rethinking const Immutability
- Value Immutability
- Object.freeze
- Don't Mutate, Copy
- Immutable Data Structures
- Immutable.js Overview
- Immutability Exercise
- Immutability Solution
- Recursion
- Base Condition Location
- Recursion Exercise
- Recursion Solution
- Stack Frames & Memory Limits
- Optimization: Tail Calls
- Proper Tail Calls
- Refactoring to PTC Form
- Continuation-Passing Style
- Trampolines
- CPS & Trampolines Q&A
- Map: Transformation
- Filter: Inclusion
- Reduce: Combination
- Composition with Reduce
- List Operations Exercise
- List Operations Solution: add & constant
- List Operations Solution: addn
- List Operations Solution: Modify Collection
- Fusion
- Transduction
- Transduction Q&A
- Deriving Transduction: Extracting Reduce
- Deriving Transduction: Combiner & Currying
- Deriving Transduction: Single Reduce
- Derivation Summary and Q&A
- Data Structure Operations
- Object Filter & Reduce Exercise
- Object Filter & Reduce Solution
- Advanced Point Free Exercise
- Advanced Point Free Solution
- Monad Data Structures
- Just Monad
- Maybe Monad
- Monads Q&A
- Map Lazy & Lazy Array
- Observables
- Reactive Programming with Rx.js
- Async with Rx.js Exercise
- Async with Rx.js Solution
- Lodash/FP
- Ramda
- FPO
- Wrapping Up
Taught by
Kyle Simpson
Related Courses
Blockchain EssentialsCognitive Class Software Construction in Java
Massachusetts Institute of Technology via edX Just Enough Functional Programming in JavaScript
egghead.io The Ins and Outs of Python Tuples
egghead.io Functional Programming with Elixir – Full Course
freeCodeCamp