From 68d9990be68cbd4e92370c12b1d7600b5c98bba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Grzegorz=20Ku=C4=87mierz?= Date: Fri, 8 Aug 2025 12:45:49 +0200 Subject: [PATCH] 558445a88826e1376b000011 --- src/5440f068cf362592e4000cd6.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/5440f068cf362592e4000cd6.js diff --git a/src/5440f068cf362592e4000cd6.js b/src/5440f068cf362592e4000cd6.js new file mode 100644 index 0000000..1def0d8 --- /dev/null +++ b/src/5440f068cf362592e4000cd6.js @@ -0,0 +1,25 @@ + +const sequence = fn => { + return { + take: n => { + const res = []; + for (let i = 0; i < n; ++i) { + res[i] = fn(i); + } + return res; + }, + takeWhile: pred => { + const res = []; + for (let i = 0; 1; ++i) { + const val = fn(i); + if (!pred(val)) break; + res[i] = fn(i); + } + return res; + }, + }; +}; + + +sequence(n => n).takeWhile(n => n < 10); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] +sequence(n => n * n).take(10); // [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]