Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Frontend Masters

Functional-Light JavaScript, v3

via Frontend Masters

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

Reviews

Start your review of Functional-Light JavaScript, v3

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.