diff options
| -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; } |
