Как реализовать функцию pipe / compose?

Я пытаюсь написать функцию 'pipe', которая довольно проста в Javascript:

const pipe = (...funcs) => val => (
  funcs.reduce((acc, func) => func(acc), val)
)

Пример использования:

const sqrt = v => Math.sqrt(v);
const half = v => v / 2;
const plusFive = v => v + 5;

plusFive(half(sqrt(16))); // 7

const doStuff = pipe(sqrt, half, plusFive);
doStuff(16); // 7 

Как сделать то же самое в Rust? Спасибо!

0 ответов

Другие вопросы по тегам