Functional JavaScript Programming

 35 Reviews Add a review

Published January 2017

Breakdown your code and make it more maintainable...why wouldn't you?

Functional techniques are very useful for clarity, conciseness, and maintainable coding practices. In this course, you will learn some of the functional programming techniques supported in JavaScript, and how to apply them to make your own code easier to read and less repetitive. Afterwards you’ll be able to tell the difference between functional and imperative code, and add recursion to your development tool belt.

At a minimum, students’ should be familiar with closures, scope, passing functions as values, and JavaScript basic concepts. A student who has completed Introduction to JavaScript and the JavaScript: Next Steps course will have all the knowledge necessary to benefit from the techniques in this course.

What you'll learn

  • Recognize and create pure idempotent functions without side effects.
  • Understand how higher-order functions work.
  • Use mapping, reducing, currying, and composition.
  • Closed captions available
Meet your instructor
M. David Green

A writer and agile coach, and the founder of Agile That Works, a consultancy that helps people in engineering organizations collaborate to make constant improvement a daily practice. David has worked as an engineer, a writer, a designer, a marketing director, and a communications analyst in companies from Fortune 100 giants to tiny high-tech startups in San Francisco and Silicon Valley. He also hosts the podcast Hack the Process at

Lesson 1: What is Functional Programming?
Free Introduction 5:15
Free Imperative JavaScript 8:47
Object Oriented JavaScript 11:58
Functional Style 14:07
Pure Functions 9:31
Higher Order Functions 14:19
Lesson 2: Working with Recursion
Traditional Looping 5:42
Simple Recursion 6:44
Issues to Consider with Recursion 5:44
Lesson 3: Understanding Currying
Repetitive Code 9:34
Manual Currying 7:00
Deep Currying 12:29
Currying and Partial Application 7:16
Beyond Basic Currying 1:49
Lesson 4: Map, Reduce, and Filter
For Loops 4:55
Free Map 4:42
Reduce 9:15
Filter 6:27
Performance and Usage 13:23
Lesson 5: Functional Compositions
Nesting Functions 5:30
Manual Composition 5:13
A Simple Compose Utility 5:58
Composing with a Library 3:50
Lesson 6: What We've Learned
What we've Learned 5:34
What's Next 2:51

Leave a Review