YoVDO

Functional-Light JavaScript, v3

Offered By: Frontend Masters

Tags

Javascript Courses Functional Programming Courses Recursion Courses Immutability Courses Currying Courses

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

4ever-clojure
Independent
Mastering Programming with MATLAB
Vanderbilt University via Coursera
Advanced Relational Database and SQL
Coursera Project Network via Coursera
算法设计与分析 Design and Analysis of Algorithms
Peking University via Coursera
算法基础 | Fundamental Algorithms
Peking University via edX