Functional Programming using BIND and CLOSURES

Functional Programming using BIND and CLOSURES

by Saksham Malhotra

JavaScript

function ProcessArray(arr, callback) {
  return arr.map((val, index) => callback(val))
}

var Double = (val) => {
  return val * 2
}

var MultiplyByFactor = (factor, val) => {
  return val * factor
}

var ModulusByFactor = (factor) => {
  return function(value) {
    return value % factor
  }
}
var arr = [1, 2, 3, 4, 5]
console.log(ProcessArray(arr, Double))
console.log(ProcessArray(arr, MultiplyByFactor.bind(this, 3)))
console.log(ProcessArray(arr, ModulusByFactor(2)))