One of the best tools I found to really dive into functional programming in JavaScript was Lodash's "fp" variant. It will swap the order of the arguments to its functions and curry them all by default. So you're building a function to "add one"
const addOne = map(function(n) { return n + 1 });
Can then be applied against an array of numbers: addOne([1, 2 ,3])
> [2, 3, 4]
This is fairly basic though. Where it really shines is when you start to use the `flow` function will can be used to compose multiple functions together (and makes the order of execution follow from left to right) flow(addOne, reverse)([1, 2, 3])
> [4, 3, 2]
I find this is one of the small redeeming features of JavaScript!