Функции высшего порядка


function Sum(a) {
  return function(b) {
    return a + b;
  }
}

Sum(1)(2)  // 3


Sum - функция высшего порядка. Так называются функции одним из аргументов или результатом вызова которых являются другие функции.

Возможность передавать функции другим функциям в качестве параметров и использовать функции в качестве значений, возвращаемых другими функциями, является основой функционального программирования.