Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data. It is a declarative programming paradigm, which means programming is done with expressions or declarations instead of statements. In functional programming, the output value of a function depends only on its arguments, so calling a function with the same value for an argument always produces the same result. This is in contrast to imperative programming, where the program state may change during the computation.
Ramda is excellent library which provide functional flavor. It emphasizes a pure function, immutability. Its provide range of utility function for functional programming which are automatically curried.
It is a excellent library and is well maintained. It is also very popular and has a large community. It is also very well documented.
Here are some articles that can help you get started with Ramda.
Iterating arrays, objects, & strings Manipulating & testing values Creating composite functions
preludejsis a modular implementation of Haskell’s Prelude library in ES6
Maybe you don’t need library?
Above mention library are great JS functional programming library. However, when you are targeting modern browsers, you may find out that there are many methods which are already supported natively thanks to ECMAScript5 [ES5] and ECMAScript2015 [ES6].