Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
function partial(fn) {
  
  var args = [];
  
  for (var i = 1; i < arguments.length; i++) {
      args.push(arguments[i]);
  }
  
  return function() {
    
    var argsNew = [];
    
    for (var i = 0; i < arguments.length; i++) {
      argsNew.push(arguments[i]);
    }
    
    for (var j = 0; j < argsNew.length; j++) {
      for (var m = 0; m < args.length; m++) {
        if (args[m] === undefined) {
          args[m] = arguments[j];
          argsNew.splice(j, 1);
        }
      }
    }
    
    if (argsNew.length !== 0) {
      for (var n = 0; n < argsNew.length; n++) {
        args.push(argsNew[n]);
      }
    }
    
    return fn.apply(null, args);
  };
}
function add(a, b) { 
  return a + b; 
}
function mult(a, b, c, d) { 
  return a * b * c * d; 
}
function test(a, b, c) { 
  return 'a=' + a + ',b=' + b + ',c=' + c; 
}
var mult23 = partial(mult, 2, 4);
console.log(mult23(3, 5));
var add5 = partial(add, 5);
console.log(add5(2));
var test1_3 = partial(test, 1, undefined, 3);
console.log(test1_3(5));
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers