make style consistent (#16944)
This commit is contained in:
parent
3eebbb234d
commit
39230422d0
1 changed files with 18 additions and 16 deletions
|
|
@ -567,18 +567,19 @@ proc product*[T](x: openArray[seq[T]]): seq[seq[T]] =
|
||||||
runnableExamples:
|
runnableExamples:
|
||||||
assert product(@[@[1], @[2]]) == @[@[1, 2]]
|
assert product(@[@[1], @[2]]) == @[@[1, 2]]
|
||||||
assert product(@[@["A", "K"], @["Q"]]) == @[@["K", "Q"], @["A", "Q"]]
|
assert product(@[@["A", "K"], @["Q"]]) == @[@["K", "Q"], @["A", "Q"]]
|
||||||
|
let xLen = x.len
|
||||||
result = newSeq[seq[T]]()
|
result = newSeq[seq[T]]()
|
||||||
if x.len == 0:
|
if xLen == 0:
|
||||||
return
|
return
|
||||||
if x.len == 1:
|
if xLen == 1:
|
||||||
result = @x
|
result = @x
|
||||||
return
|
return
|
||||||
var
|
var
|
||||||
indices = newSeq[int](x.len)
|
indices = newSeq[int](xLen)
|
||||||
initial = newSeq[int](x.len)
|
initial = newSeq[int](xLen)
|
||||||
index = 0
|
index = 0
|
||||||
var next = newSeq[T](x.len)
|
var next = newSeq[T](xLen)
|
||||||
for i in 0..(x.len-1):
|
for i in 0 ..< xLen:
|
||||||
if len(x[i]) == 0: return
|
if len(x[i]) == 0: return
|
||||||
initial[i] = len(x[i]) - 1
|
initial[i] = len(x[i]) - 1
|
||||||
indices = initial
|
indices = initial
|
||||||
|
|
@ -586,7 +587,7 @@ proc product*[T](x: openArray[seq[T]]): seq[seq[T]] =
|
||||||
while indices[index] == -1:
|
while indices[index] == -1:
|
||||||
indices[index] = initial[index]
|
indices[index] = initial[index]
|
||||||
index += 1
|
index += 1
|
||||||
if index == x.len: return
|
if index == xLen: return
|
||||||
indices[index] -= 1
|
indices[index] -= 1
|
||||||
for ni, i in indices:
|
for ni, i in indices:
|
||||||
next[ni] = x[ni][i]
|
next[ni] = x[ni][i]
|
||||||
|
|
@ -710,7 +711,8 @@ proc rotateInternal[T](arg: var openArray[T]; first, middle, last: int): int =
|
||||||
next = mMiddle
|
next = mMiddle
|
||||||
|
|
||||||
proc rotatedInternal[T](arg: openArray[T]; first, middle, last: int): seq[T] =
|
proc rotatedInternal[T](arg: openArray[T]; first, middle, last: int): seq[T] =
|
||||||
result = newSeq[T](arg.len)
|
let argLen = arg.len
|
||||||
|
result = newSeq[T](argLen)
|
||||||
for i in 0 ..< first:
|
for i in 0 ..< first:
|
||||||
result[i] = arg[i]
|
result[i] = arg[i]
|
||||||
let n = last - middle
|
let n = last - middle
|
||||||
|
|
@ -719,7 +721,7 @@ proc rotatedInternal[T](arg: openArray[T]; first, middle, last: int): seq[T] =
|
||||||
result[first+i] = arg[middle+i]
|
result[first+i] = arg[middle+i]
|
||||||
for i in 0 ..< m:
|
for i in 0 ..< m:
|
||||||
result[first+n+i] = arg[first+i]
|
result[first+n+i] = arg[first+i]
|
||||||
for i in last ..< arg.len:
|
for i in last ..< argLen:
|
||||||
result[i] = arg[i]
|
result[i] = arg[i]
|
||||||
|
|
||||||
proc rotateLeft*[T](arg: var openArray[T]; slice: HSlice[int, int];
|
proc rotateLeft*[T](arg: var openArray[T]; slice: HSlice[int, int];
|
||||||
|
|
@ -776,9 +778,9 @@ proc rotateLeft*[T](arg: var openArray[T]; dist: int): int {.discardable.} =
|
||||||
assert a == [2, 3, 4, 5, 1]
|
assert a == [2, 3, 4, 5, 1]
|
||||||
a.rotateLeft(-6)
|
a.rotateLeft(-6)
|
||||||
assert a == [1, 2, 3, 4, 5]
|
assert a == [1, 2, 3, 4, 5]
|
||||||
let arglen = arg.len
|
let argLen = arg.len
|
||||||
let distLeft = ((dist mod arglen) + arglen) mod arglen
|
let distLeft = ((dist mod argLen) + argLen) mod argLen
|
||||||
arg.rotateInternal(0, distLeft, arglen)
|
arg.rotateInternal(0, distLeft, argLen)
|
||||||
|
|
||||||
proc rotatedLeft*[T](arg: openArray[T]; slice: HSlice[int, int],
|
proc rotatedLeft*[T](arg: openArray[T]; slice: HSlice[int, int],
|
||||||
dist: int): seq[T] =
|
dist: int): seq[T] =
|
||||||
|
|
@ -808,7 +810,7 @@ proc rotatedLeft*[T](arg: openArray[T]; slice: HSlice[int, int],
|
||||||
assert a == @[1, 5, 2, 3, 4]
|
assert a == @[1, 5, 2, 3, 4]
|
||||||
let sliceLen = slice.b + 1 - slice.a
|
let sliceLen = slice.b + 1 - slice.a
|
||||||
let distLeft = ((dist mod sliceLen) + sliceLen) mod sliceLen
|
let distLeft = ((dist mod sliceLen) + sliceLen) mod sliceLen
|
||||||
arg.rotatedInternal(slice.a, slice.a+distLeft, slice.b+1)
|
arg.rotatedInternal(slice.a, slice.a + distLeft, slice.b + 1)
|
||||||
|
|
||||||
proc rotatedLeft*[T](arg: openArray[T]; dist: int): seq[T] =
|
proc rotatedLeft*[T](arg: openArray[T]; dist: int): seq[T] =
|
||||||
## Same as `rotateLeft`, just with the difference that it does
|
## Same as `rotateLeft`, just with the difference that it does
|
||||||
|
|
@ -825,6 +827,6 @@ proc rotatedLeft*[T](arg: openArray[T]; dist: int): seq[T] =
|
||||||
assert a == @[2, 3, 4, 5, 1]
|
assert a == @[2, 3, 4, 5, 1]
|
||||||
a = rotatedLeft(a, -6)
|
a = rotatedLeft(a, -6)
|
||||||
assert a == @[1, 2, 3, 4, 5]
|
assert a == @[1, 2, 3, 4, 5]
|
||||||
let arglen = arg.len
|
let argLen = arg.len
|
||||||
let distLeft = ((dist mod arglen) + arglen) mod arglen
|
let distLeft = ((dist mod argLen) + argLen) mod argLen
|
||||||
arg.rotatedInternal(0, distLeft, arg.len)
|
arg.rotatedInternal(0, distLeft, argLen)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue