Skip to content

Commit 50fb60c

Browse files
♻️ refactor(permutations): Exploit lightweight range implementations.
1 parent 9765f87 commit 50fb60c

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/permutations.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ import {_take} from '@iterable-iterator/slice';
33

44
import {list} from '@iterable-iterator/list';
55
import {pick} from '@iterable-iterator/map';
6-
import {range} from '@iterable-iterator/range';
6+
import {
7+
forwardRangeIterator,
8+
backwardRangeIterator,
9+
} from '@iterable-iterator/range';
710

811
/**
912
* Yields all permutations of each possible choice of <code>r</code> elements
@@ -31,8 +34,8 @@ export default function* permutations(iterable, r) {
3134
return;
3235
}
3336

34-
const indices = list(range(0, length, 1));
35-
const cycles = list(range(length, length - r, -1));
37+
const indices = list(forwardRangeIterator(0, length, 1));
38+
const cycles = list(backwardRangeIterator(length, length - r, -1));
3639

3740
yield list(pick(pool, _take(indices, r)));
3841

0 commit comments

Comments
 (0)