The library provides curried functions -- they're like regular functions when the argument list is complete. However, if there are arguments missing, the result is another function that expects the remaining ones. This defers the actual call until all data is available, and allows partial contextualization across sections of code. Ramda also offers a mechanism to turn regular functions into curried versions.
Among other things, Ramda includes rich array and record manipulation, function composition and lifting into Array Applicative similes, lensing, expression-yielding flow control substitutes.
The library provides a set of useful function with Functional Programming style, but doesn't bother you with the vague concepts of advanced algebra. It's easy as lodash or underscore.
lodash fills in a lot of gaps in underscore, including many functions familiar to functional programmers, such as takeWhile and dropWhile, as well as useful utility functions like isPlainObject.
Is for a paradigm known as "Functional Reactive Programming"
For example, if you had a list and you want to sum it, you would use something called fold or reduce.
Except that in Bacon, you need to generate a new Observable, use result = Observable.fold on it, then watch the result, then insert the list. After which, you would have to ignore all values except the last one.
Create terse, elegant code with function strings - instead of manually building simple functions like comparators and reduce functions, describe them as simple strings on the fly to create clean, readable code.
Underscore comes with not just all the usual functional suspects, but all the tools you'll need to go back-and-forth between Object Oriented and Functional paradigms - dynamically create objects from lists and vice-versa, pull data from object fields, bind 'this', partially apply, chain functions, and more.