summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Bailly <arnaud.bailly@iohk.io>2025-01-26 09:06:55 +0100
committerArnaud Bailly <arnaud.bailly@iohk.io>2025-01-26 09:06:55 +0100
commit3c4e2ba00776a492a7ccb060435e54b5a34a5188 (patch)
treef999175cda0a8d7801c2661476ef448cedca8710
parent064e80689c7d7126a504400d8c4e962b6b334bac (diff)
downloadlambda-nantes-3c4e2ba00776a492a7ccb060435e54b5a34a5188.tar.gz
Improve array shrinking
-rw-r--r--pbt/ts/src/index.ts14
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;
}