diff options
| author | Arnaud Bailly <arnaud.bailly@iohk.io> | 2025-01-26 09:06:55 +0100 |
|---|---|---|
| committer | Arnaud Bailly <arnaud.bailly@iohk.io> | 2025-01-26 09:06:55 +0100 |
| commit | 3c4e2ba00776a492a7ccb060435e54b5a34a5188 (patch) | |
| tree | f999175cda0a8d7801c2661476ef448cedca8710 | |
| parent | 064e80689c7d7126a504400d8c4e962b6b334bac (diff) | |
| download | lambda-nantes-3c4e2ba00776a492a7ccb060435e54b5a34a5188.tar.gz | |
Improve array shrinking
| -rw-r--r-- | pbt/ts/src/index.ts | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/pbt/ts/src/index.ts b/pbt/ts/src/index.ts index 474b656..cf8b7ff 100644 --- a/pbt/ts/src/index.ts +++ b/pbt/ts/src/index.ts @@ -41,11 +41,19 @@ function reverse_is_self_inverse(arr: number[]): boolean { function shrinklist<A>(arr: A[]): A[][] { let result = []; - for (let i = 0; i < arr.length; i++) { + + let tail = arr.slice(1); + let keep1 = arr.slice(); + keep1.splice(1, 1); + result.push(tail,keep1); + + if (arr.length >3) { + let half = Math.floor(arr.length / 2); let copy = arr.slice(); - copy.splice(i, 1); - result.push(copy); + let secondHalf = copy.slice(half); + result.push(secondHalf); } + return result; } |
