summaryrefslogtreecommitdiff
path: root/pbt/ts/src/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'pbt/ts/src/index.ts')
-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;
}