fork(1) download
  1. function partial(fn) {
  2. var args = Array.prototype.slice.call(arguments);
  3. var args = args.slice(1);
  4.  
  5. return function() {
  6. var args1 = Array.prototype.slice.call(arguments);
  7. var newArgs = args.concat(args1);
  8. var x = fn.apply(null, newArgs);
  9. return x;
  10. }
  11. }
  12.  
  13.  
  14. function add(a, b) { return a + b; }
  15. function mult(a, b, c, d) { return a * b * c * d; }
  16.  
  17. var add5 = partial(add, 5); // Мы получили функцию с 1 аргументом, которая прибавляет к любому числу 5
  18.  
  19. console.log(add5(2)); // 7
  20. console.log(add5(10)); // 15
  21. console.log(add5(8)); // 13
  22.  
  23. var mult23 = partial(mult, 2, 3); // мы зафиксировали первые 2 аргумента mult() как 2 и 3
  24.  
  25. console.log(mult23(4, 5)); // 2*3*4*5 = 120
  26. console.log(mult23(1, 1)); // 2*3*1*1 = 6
Runtime error #stdin #stdout #stderr 0.49s 321920KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
js: uncaught JavaScript runtime exception: ReferenceError: "console" is not defined.