dumperize / cosyBoard

0 stars 0 forks source link

Про ФП #15

Open dumperize opened 3 years ago

dumperize commented 3 years ago
dumperize commented 3 years ago

книга - https://github.com/MostlyAdequate/mostly-adequate-guide

dumperize commented 3 years ago

дроздов в мире программирования про ФП - с нуля, для всех https://www.youtube.com/watch?v=2QAUAZ5qgJM&t=20s

blednaya-luna commented 3 years ago

дроздов в мире программирования про ФП - с нуля, для всех https://www.youtube.com/watch?v=2QAUAZ5qgJM&t=20s

вначале подумал про Дроздова с ТГУ))

dumperize commented 3 years ago

Как из любой функции на js сделать ее каррированную версию:

function curry (func) {
  return function curried (...args) {
    if (args.length >= func.length) {
      return func.apply(this, args);
    }
    else {
      return function (...args2) {
          return curried.apply(this, args.concat(args2));
      }
    }
  }
}

function sum (a, b, c, d, e) {
  return a+b+c+d+e;
}

let curriedSum = curry(sum);

// Стандартный запуск функции
console.log(curriedSum(1, 2, 3, 4, 5));

// Полное каррирование функции
console.log( curriedSum(1)(2)(3)(4)(5) );

// Неполное каррирование или частичное применение функции
console.log( curriedSum(1)(2, 3)(4)(5) ); 

Если хотите знать для чего так вобще делать - не забывайте ходить на тимсы. Илья рассказал на практическом примере.