Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.06.2019, 20:44
Аспирант
Отправить личное сообщение для DarkPhoenix Посмотреть профиль Найти все сообщения от DarkPhoenix
 
Регистрация: 11.05.2019
Сообщений: 30

Compose функция
Создать функцию compose которая выполняет композицию функций справа налево.
Задание в том что может быть неограниченное кол-во. операций. И надо написать функцию для любого кол-ва.
Я так понимаю что тут замешаны ...args. Но пока так и не осознал.

Для примера есть 2 функции.
Надо написать для них compose. А после для неограниченного кол-ва.

function division(x) {
  return x/2;
}
function negative(x) {
  return -x;
}

var r = compose (division, negative, Math.pow);
r(10, 9)
Ответить с цитированием
  #2 (permalink)  
Старый 15.06.2019, 21:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 26,499

DarkPhoenix,
возможно, я что-то упустил ...
function division(x) {
  return x/2;
}
function negative(x) {
  return -x;
}
const compose = (...args) => (...ar) => args.reduceRight((res, fn) => [fn(...res)], ar)[0];
const r = compose (negative, division, Math.pow);
console.log(r(10, 9))
Ответить с цитированием
  #3 (permalink)  
Старый 15.06.2019, 21:25
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,113

function division(x) {
	return x / 2;
}
function negative(x) {
	return -x;
}

function compose(...fs) {
	return (...xs) => fs.reduceRight((xs, f) => [f(...xs)], xs)[0];
}

var r = compose(division, negative, Math.pow);
alert(r(10, 9));
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция вызывается несколько раз KiberQ Общие вопросы Javascript 11 01.03.2017 14:45
js рекурсивная функция с for.. in циклом frying Общие вопросы Javascript 6 25.08.2014 09:50
не вызывается функция при изменении option soft4you Общие вопросы Javascript 1 23.07.2014 16:41
AJAX функция для новых html-элементов broadcast77 AJAX и COMET 25 03.03.2014 12:01
функция и несуществующий id Ankh Элементы интерфейса 4 10.02.2012 21:49