Run details:
Mozilla/5.0 (iPad; CPU OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 Mobile/14G60 Safari/602.1
Mobile Safari 10
iOS 10.3.3
Tablet
5 years ago
Test name Executions per second
Lodash 13225.4 Ops/sec
Ramda without relying on currying or composition 57.0 Ops/sec
Ramda with currying and composition 46.7 Ops/sec
HTML Preparation code:
AخA
 
1
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.min.js"></script>
2
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>
Script Preparation code:
x
 
var data = _.range(10000).map(function(i) {
  return {
    counter: i
  }
});
function isOdd(num) {
  return num % 2 === 1;
}
function square(num) {
  return num * num;
}
function lessThanThreeDigits(num) {
  return num.toString().length < 3;
}
Tests:
  • Lodash

     
    var result = _.chain(data)
      .pick('counter')
      .filter(isOdd)
      .map(square)
      .filter(lessThanThreeDigits)
      .value();
  • Ramda without relying on currying or composition

     
    var result = R.filter(lessThanThreeDigits,
      R.map(square,
        R.filter(isOdd,
          R.pluck('counter', data))));
  • Ramda with currying and composition

     
    var result = R.pipe(
      R.pluck('counter'),
      R.filter(isOdd),
      R.map(square),
      R.filter(lessThanThreeDigits)
    )(data);