«Комбинировать» функции в javascript функционально?
Я изучаю функциональное программирование, и мне интересно, есть ли способ «объединить» функции следующим образом:
function triple(x) {
return x * 3;
}
function plusOne(x) {
return x + 1;
}
function isZero(x) {
return x === 0;
}
combine(1); //1
combine(triple)(triple)(plusOne)(1); // 10
combine(plusOne)(triple)(isZero)(-1); // true
Если para является функцией, он «объединяет» функцию в себя и, если нет, возвращает окончательный результат. Спасибо!