Как реализовать функцию 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? Спасибо!