-
The Little Idea of Functional Programming
http://jaysoo.ca/2016/01/13/functional-programming-little-ideas/
Describes the three basic principles of FP: "data in/data out", "code as data", and "function composition" all the way down, and demonstrates transforming some data. Has some very helpful graphics and illustrations. -
Understanding Programmatic Side Effects
http://c2fo.io/c2fo/programming/2016/05/11/understanding-programmatic-side-effects/
A short article that explains the concept of "side effects" -
What Is Functional Programming?
http://blog.jenkster.com/2015/12/what-is-functional-programming.html
Describes how side effects and "hidden inputs" add complexity to code, in very clear terms. -
Getting Functional with Javascript
http://www.datchley.name/getting-functional-with-javascript-part-1/
http://www.datchley.name/getting-functional-with-javascript-part-2/
http://www.datchley.name/getting-functional-with-javascript-part-3/
Demonstrates FP concepts by showing how to filter, group, and sort an array of data. Lots of good descriptions, samples, and explanations. -
Functional Programming for Javascript People
https://medium.com/@chetcorcos/functional-programming-for-javascript-people-1915d8775504
Tries to explain core FP concepts and patterns in understandable terms. -
Functors, Applicatives, and Monads in Pictures
http://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html
A long article that tries to describe several FP terms using lots of cartoons. -
A Gentle Introduction to Functional Javascript
http://jrsinclair.com/articles/2016/gentle-introduction-to-functional-javascript-intro/
http://jrsinclair.com/articles/2016/gentle-introduction-to-functional-javascript-arrays/
http://jrsinclair.com/articles/2016/gentle-introduction-to-functional-javascript-functions/
http://jrsinclair.com/articles/2016/gentle-introduction-to-functional-javascript-style/
Goes through a number of FP-related aspects in Javascript. -
Functional Thinking
http://nealford.com/functionalthinking.html
An extended series of articles collected together. Aimed at Java/JVM programmers, and makes a number of comparisons of OOP vs FP. -
Functional Programing in Javascript
http://reactivex.io/learnrx/
Teaches functional programming concepts through a series of interactive exercises. Intended as a precursor to learning the Reactive Extensions for Javascript library (RxJS), but uses plain JS and teaches general concepts in the process. (Later exercises are hidden until earlier ones are completed - hit "Show Answer" and "Run" on an exercise if you want to skip ahead). -
The "Thinking Functionally" series
http://fsharpforfunandprofit.com/series/thinking-functionally.html
A series of lessons teaching functional concepts using F#. Very well written, clear and easy to understand. Examples use F#, but concepts are widely applicable. -
Functional Programming in Javascript
https://www.youtube.com/watch?v=BMUiFMZr7vk&list=PL0zVEGEvSaeEd9hlmCXrk5yUyqUag-n84
A web series by a quirky programmer showing you high level functional concepts in Javascript -
Functional Programming Jargon
https://github.com/hemanth/functional-programming-jargon
A list of FP terms with easier-to-understand definitions and explanations. -
An Introduction to Reasonably Pure Functional Programming
https://www.sitepoint.com/an-introduction-to-reasonably-pure-functional-programming/
Explain four key concepts of functional programming: pure functions, immutable values, composition, and side effects -
Functors, Applicatives, and Monads in Plain English
http://www.russbishop.net/monoids-monads-and-functors
An attempt to explain these concepts in reasonable terms. -
Learning Functional Programming with Javascript
https://youtu.be/e-5obm1G_FY
A great talk by Anjana Vakil. Covers several basic concepts of functional programming, including some very nice examples of map/filter/reducer, a clear fdefinition of side effects, and an explanation of how specialized immutable data libraries work. -
Thinking in Ramda
http://randycoulman.com/blog/categories/thinking-in-ramda/
A series of articles digging into techniques to use with the Ramda FP utility library -
Functional Programming Isn't the Answer
http://degoes.net/articles/fp-is-not-the-answer
A reminder that while FP has potential benefits, it's ultimately just a tool, and the end goal is useful software. -
An Intro to Functional Programming Concepts in Javascript
https://medium.com/@collardeau/intro-to-functional-programming-concepts-in-javascript-b0650773139c
https://medium.com/@collardeau/intro-to-functional-programming-concepts-in-javascript-part-2-f45228c49eed
https://medium.com/@collardeau/part-3-an-intro-to-functional-programming-concepts-in-javascript-febf9368ffe6
A multi-part series covering a number of FP concepts, how to use them in Javascript, and use of the Ramda FP utility library -
Functional-Light JS
https://github.com/getify/Functional-Light-JS
This book explores the core principles of functional programming (FP) that can be applied to JavaScript. But what makes this book different is that we approach these principles without drowning in all the heavy terminology. We look at a subset of FP foundational concepts that I call "Functional-Light Programming" (FLP) and apply it to JavaScript. -
The Case for Lenses in Pragmatic Business Applications
http://www.brandonkeown.com/2016/10/lenses-for-fun-and-profit.html
Demonstrates the use of Ramda's "lens" concept for encapsulating data access -
Functional Lenses, How Do They Work
https://medium.com/@dtipson/functional-lenses-d1aba9e52254
A dive into the "lens" concept, and how they can be used to manipulate data structures -
Don't Be Scared of Functional Programming
https://www.smashingmagazine.com/2014/07/dont-be-scared-of-functional-programming/
Several examples of functional programming principles, both in plain JS and with Underscore.js -
Functional Programming Basics in ES6
https://www.youtube.com/watch?v=HvMemAgOw6I
Talk on functional programming with JavaScript and ES6 syntax. Covers basics such as purity, referential transparency, closures, immutability, currying, composition, and recursion. -
Dipping a toe into functional JS with lodash/fp
https://simonsmith.io/dipping-a-toe-into-functional-js-with-lodash-fp/
Examples of using Lodash's functional API for logic and React component composition -
Composability: From Callbacks to Categories in ES6
https://medium.com/@homam/composability-from-callbacks-to-categories-in-es6-f3d91e62451e
Explores different solutions to "callback hell", based on various FP concepts -
So You Want To Be a Functional Programmer
https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-6-db502830403
A multi-part series on functional programming concepts and learning approaches (links to previous parts in the article). -
Higher-order functions in Lodash
http://pragmatists.pl/blog/2017/05/higher-order-functions-in-lodash/
An explanation of several FP concepts like partial application and currying, and how Lodash offers utility functions to help make use of those concepts. -
How to Draw an Owl
https://glebbahmutov.com/blog/how-to-draw-an-owl/
Demonstrates refactoring some complex imperative code into a functional approach that uses concepts like pure functions, lenses, immutable data, and the Maybe monad -
What's Functional Programming All About?
http://www.lihaoyi.com/post/WhatsFunctionalProgrammingAllAbout.html
A detailed explanation of how "functional" programming differs from "imperative" programming, using a food recipe as an example of the steps involved. -
Higher Order Functions and Redux Thunk
https://medium.com/@joedski/higher-order-functions-and-redux-thunk-1e5983ae6b03
An exploration of ways to wrap behavior around thunks, including composing functions together. -
Functional Programming Jargon
https://functional.works-hub.com/blog/Functional-Programming-Jargon
A large list of functional programming terms, with explanations for each and examples of those terms using JS -
Awesome FP JS
https://github.com/stoeffel/awesome-fp-js
A collection of links to libraries, tools, and resources for FP usage in JS -
Currying vs Partial Application
http://www.datchley.name/currying-vs-partial-application/
A great explanation of the difference between "currying" functions and "partially applying" them -
Lodash is not (only) for list manipulation!
https://blog.pragmatists.com/lodash-is-not-only-for-list-manipulation-791c2e3b9de1
Examples of how to compose thelodash/fp
functions to create functional data transformation pipelines.