фона:Как читать функциональную композицию в es6/javascript?
Композиция ставит две функции вместе, чтобы сформировать третью функцию, где выход одной функции является входом другого.
Независимо от того, насколько я смотрю на это, я борюсь с тем, как его читать. В частности, почему compose()
возвращает => (a) =>
, фиксирует 121.2121212
в локальной области. Также я борюсь с тем, как будет выглядеть окончательный fn f(g(a))
со всеми значениями/fn, присутствующими без использования переменных.
Вопрос: У кого-нибудь есть методы или диаграммы для быстрого чтения таких примеров; как я могу мысленно отлаживать и следить за потоком функций?
const compose = (f, g) => (a) => f(g(a)) // Definition
const floorAndToString = compose((val) => val.toString(), Math.floor) // Usage
floorAndToString(121.212121) // '121'
Когда я впервые привык к функциям стрелки, мне было полезно переписать их как функции 'function' (по крайней мере, те, что были выше, которые не заботятся об этом), чтобы понять их. Вышеизложенное в первую очередь сложно, потому что 'compose' - это функция, принимающая функции, которая возвращает новую функцию, все используют краткую форму стрелки. Вы привыкаете к этому, но я для одного нашел его сложным сначала и нашел, что стратегия полезна. –