From f7cdba6935bf58b81a4d855e18bc45de8cad99b1 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Fri, 12 May 2023 17:32:50 +0200 Subject: [PATCH] =?UTF-8?q?problems(js):=20add=20=E2=80=9C2629.=20Function?= =?UTF-8?q?=20Composition=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Matej Focko --- problems/function-composition.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 problems/function-composition.js diff --git a/problems/function-composition.js b/problems/function-composition.js new file mode 100644 index 0000000..67453e4 --- /dev/null +++ b/problems/function-composition.js @@ -0,0 +1,17 @@ +/** + * @param {Function[]} functions + * @return {Function} + */ +var compose = function(functions) { + return function(x) { + return functions.reduceRight( + (val, f) => f(val), + x, + ); + }; +}; + +/** + * const fn = compose([x => x + 1, x => 2 * x]) + * fn(4) // 9 + */