1
1
'use strict'
2
2
const adjustIndex = require ( './adjust-index' )
3
3
const and = require ( './and' )
4
- const arrayify = require ( './arrayify ' )
4
+ const concat = require ( './concat ' )
5
5
const curry = require ( './curry' )
6
6
const decr = require ( './decr' )
7
+ const empty = require ( './empty' )
7
8
const eq = require ( './eq' )
8
9
const head = require ( './head' )
9
10
const isEmpty = require ( './is-empty' )
10
11
const len = require ( './len' )
11
12
const map = require ( './map' )
12
- const mapcat = require ( './mapcat' )
13
13
const max = require ( './max' )
14
14
const min = require ( './min' )
15
15
const notArr = require ( './not-arr' )
16
16
const notStr = require ( './not-str' )
17
17
const or = require ( './or' )
18
18
const partitionAt = require ( './partition-at' )
19
+ const prepend = require ( './prepend' )
20
+ const reduce = require ( './reduce' )
19
21
const sub = require ( './sub' )
20
22
const tail = require ( './tail' )
21
23
@@ -31,7 +33,7 @@ function swap(i, j, xs) {
31
33
const [ hd , rest ] = partitionAt ( min ( k , n ) , xs )
32
34
const [ md , tl ] = partitionAt ( sub ( max ( k , n ) , len ( hd ) ) , rest )
33
35
34
- return mapcat ( arrayify , [ hd , head ( tl ) , tail ( md ) , head ( md ) , tail ( tl ) ] )
36
+ return reduce ( concat , empty ( xs ) , [ hd , prepend ( head ( tl ) , tail ( md ) ) , prepend ( head ( md ) , tail ( tl ) ) ] )
35
37
}
36
38
37
39
module . exports = curry ( swap )
0 commit comments