JSFiddle - React, Tailwind, and code Playground

by Artur Maizelev

JavaScript

function evaluate(operation, x) {
  switch (operation) {
    case 'sum':
      return function(z) {
        return function(a) {
          return z + a;
        }
      }
    case 'multiply':
      return function(z) {
        return function(a) {
          return z * a;
        }
      }
    case 'divide':
      return function(z) {
        return function(a) {
          return z / a;
        }
      }
    case 'substract':
      return function(z) {
        return function(a) {
          return z - a;
        }
      }
    default:
      return 'Invalid Operation!'
  }
}

const multiply = evaluate('multiply')
console.log(multiply()(3));