compose, pipe, curry, partial, memoize, debounce, throttle, and once. All rely on closures and first-class functions. They are the building blocks of functional programming in JavaScript.
Higher-Order Function Patterns in JavaScript
What are the most common higher-order function patterns in JavaScript?
The answer
More FAQs in Higher-Order Function Patterns in JavaScript
compose applies functions right to left: compose(f, g)(x) = f(g(x)). pipe applies functions left to right: pipe(f, g)(x) = g(f(x)). pipe is more natural to read (first function runs first).
Return a function that collects arguments. If enough arguments are collected (args.length >= fn.length), call the original function. Otherwise, return a new function that collects more arguments. Use recursion.
curry transforms a function into a chain of single-argument functions: f(a)(b)(c). partial presets some arguments and returns a function for the rest: f'(b, c) with a preset. curry is one-arg-at-a-time; partial is some-args-now.
Still have questions?
Browse all our FAQs or reach out to our support team
Want to upskill yourself?
Your learning library
Small steps. Big possibilities.
Find your next course. Build something great.