diff options
author | Timothee Cour <timothee.cour2@gmail.com> | 2021-05-30 13:37:21 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-30 22:37:21 +0200 |
commit | 4a7f2c386cde91b784106905f6e70d3954d8fae9 (patch) | |
tree | 08edcb7d8f4b6d7f2d540668605615f2b0181b45 /lib | |
parent | cfe19247e856950f7facaf7adbc50bca8dec3990 (diff) | |
download | Nim-4a7f2c386cde91b784106905f6e70d3954d8fae9.tar.gz |
close #16569: deprecated `reversed(a, start, last)` overload, use toOpenArray instead (#18047)
* close #16569: deprecated reversed overload, use toOpenArray instead * [skip ci] change wording in changelog per review * fixup
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/algorithm.nim | 41 |
1 files changed, 11 insertions, 30 deletions
diff --git a/lib/pure/algorithm.nim b/lib/pure/algorithm.nim index f4b3f46be..c96f599e8 100644 --- a/lib/pure/algorithm.nim +++ b/lib/pure/algorithm.nim @@ -131,40 +131,21 @@ proc reverse*[T](a: var openArray[T]) = # the max is needed, since a.high is -1 if a is empty reverse(a, 0, max(0, a.high)) -proc reversed*[T](a: openArray[T], first: Natural, last: int): seq[T] = - ## Returns the reverse of the slice `a[first..last]`. - ## - ## If an invalid range is passed, it raises `IndexDefect`. - ## - ## **See also:** - ## * `reverse proc<#reverse,openArray[T],Natural,Natural>`_ reverse a slice - ## * `reverse proc<#reverse,openArray[T]>`_ - runnableExamples: - let - a = [1, 2, 3, 4, 5, 6] - b = a.reversed(1, 3) - assert b == @[4, 3, 2] - assert last >= first - 1 - var i = last - first - var x = first.int - result = newSeq[T](i + 1) - while i >= 0: - result[i] = a[x] - dec(i) - inc(x) - -proc reversed*[T](a: openArray[T]): seq[T] = - ## Returns the reverse of the container `a`. +proc reversed*[T](a: openArray[T]): seq[T] {.inline.} = + ## Returns the elements of `a` in reverse order. ## ## **See also:** - ## * `reverse proc<#reverse,openArray[T],Natural,Natural>`_ reverse a slice ## * `reverse proc<#reverse,openArray[T]>`_ runnableExamples: - let - a = [1, 2, 3, 4, 5, 6] - b = reversed(a) - assert b == @[6, 5, 4, 3, 2, 1] - reversed(a, 0, a.high) + assert [10, 11, 12].reversed == @[12, 11, 10] + assert seq[string].default.reversed == @[] + let n = a.len + result.setLen(n) + for i in 0..<n: result[i] = a[n - (i + 1)] + +proc reversed*[T](a: openArray[T], first: Natural, last: int): seq[T] + {.inline, deprecated: "use: `reversed(toOpenArray(a, first, last))`".} = + reversed(toOpenArray(a, first, last)) proc binarySearch*[T, K](a: openArray[T], key: K, cmp: proc (x: T, y: K): int {.closure.}): int = |