added sequtils.reversed; refs #3148
This commit is contained in:
parent
35f8cc0bdd
commit
cf4879bc48
1 changed files with 23 additions and 0 deletions
|
|
@ -451,6 +451,21 @@ template newSeqWith*(len: int, init: expr): expr =
|
||||||
result[i] = init
|
result[i] = init
|
||||||
result
|
result
|
||||||
|
|
||||||
|
proc reversed*[T](s: seq[T]): seq[T] =
|
||||||
|
## Takes a sequences and returns a new reversed one
|
||||||
|
##
|
||||||
|
## Example:
|
||||||
|
##
|
||||||
|
## .. code-block::
|
||||||
|
##
|
||||||
|
## let s1 = @[1, 2, 3, 4, 5]
|
||||||
|
## let s2 = @[5, 4, 3, 2, 1]
|
||||||
|
## assert s2 == s1.reversed()
|
||||||
|
##
|
||||||
|
result = s
|
||||||
|
let ln = result.len
|
||||||
|
for i in 0..(ln div 2)-1: swap(result[i], result[ln-i-1])
|
||||||
|
|
||||||
when isMainModule:
|
when isMainModule:
|
||||||
import strutils
|
import strutils
|
||||||
block: # concat test
|
block: # concat test
|
||||||
|
|
@ -615,5 +630,13 @@ when isMainModule:
|
||||||
#doAssert a.repeat(-1) == @[] # will not compile!
|
#doAssert a.repeat(-1) == @[] # will not compile!
|
||||||
doAssert b.repeat(3) == @[]
|
doAssert b.repeat(3) == @[]
|
||||||
|
|
||||||
|
block: # reversed tests:
|
||||||
|
let
|
||||||
|
a = @[1, 2, 3]
|
||||||
|
b: seq[int] = @[]
|
||||||
|
|
||||||
|
doAssert a.reversed == @[3, 2, 1]
|
||||||
|
doAssert b.reversed == @[]
|
||||||
|
|
||||||
when not defined(testing):
|
when not defined(testing):
|
||||||
echo "Finished doc tests"
|
echo "Finished doc tests"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue