summaryrefslogtreecommitdiff
path: root/src/prelude/array.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/prelude/array.ts')
-rw-r--r--src/prelude/array.ts12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/prelude/array.ts b/src/prelude/array.ts
index 09457d2d0a..5f694b1d31 100644
--- a/src/prelude/array.ts
+++ b/src/prelude/array.ts
@@ -57,3 +57,15 @@ export function lessThan(xs: number[], ys: number[]): boolean {
}
return xs.length < ys.length;
}
+
+export function takeWhile<T>(f: (x: T) => boolean, xs: T[]): T[] {
+ const ys = [];
+ for (const x of xs) {
+ if (f(x)) {
+ ys.push(x);
+ } else {
+ break;
+ }
+ }
+ return ys;
+}