Skip to content

Commit 40a007b

Browse files
committed
Minor tweak on swap module
1 parent df8628b commit 40a007b

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/swap.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
11
'use strict'
22
const adjustIndex = require('./adjust-index')
33
const and = require('./and')
4-
const arrayify = require('./arrayify')
4+
const concat = require('./concat')
55
const curry = require('./curry')
66
const decr = require('./decr')
7+
const empty = require('./empty')
78
const eq = require('./eq')
89
const head = require('./head')
910
const isEmpty = require('./is-empty')
1011
const len = require('./len')
1112
const map = require('./map')
12-
const mapcat = require('./mapcat')
1313
const max = require('./max')
1414
const min = require('./min')
1515
const notArr = require('./not-arr')
1616
const notStr = require('./not-str')
1717
const or = require('./or')
1818
const partitionAt = require('./partition-at')
19+
const prepend = require('./prepend')
20+
const reduce = require('./reduce')
1921
const sub = require('./sub')
2022
const tail = require('./tail')
2123

@@ -31,7 +33,7 @@ function swap(i, j, xs) {
3133
const [hd, rest] = partitionAt(min(k, n), xs)
3234
const [md, tl] = partitionAt(sub(max(k, n), len(hd)), rest)
3335

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))])
3537
}
3638

3739
module.exports = curry(swap)

0 commit comments

Comments
 (0)