diff options
author | Varriount <Varriount@users.noreply.github.com> | 2013-10-27 03:44:55 -0400 |
---|---|---|
committer | Varriount <Varriount@users.noreply.github.com> | 2013-10-27 03:44:55 -0400 |
commit | ea92682b98a303fe37feb447160560d28e8fe0a6 (patch) | |
tree | b1ec3b64bacf0bcf56d77505a8aab6f4c747ab7b /lib/pure/collections/sequtils.nim | |
parent | 314e526f75bb19b069d438af9c7ad99411ee1da9 (diff) | |
download | Nim-ea92682b98a303fe37feb447160560d28e8fe0a6.tar.gz |
Apply changes suggested by Araq
Added documentation examples, added defaults
Diffstat (limited to 'lib/pure/collections/sequtils.nim')
-rw-r--r-- | lib/pure/collections/sequtils.nim | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/lib/pure/collections/sequtils.nim b/lib/pure/collections/sequtils.nim index 7a520e9a3..3a009a8cb 100644 --- a/lib/pure/collections/sequtils.nim +++ b/lib/pure/collections/sequtils.nim @@ -117,9 +117,18 @@ proc filter*[T](seq1: seq[T], pred: proc(item: T): bool {.closure.}): seq[T] = ## assert f2 == @["yellow"] accumulateResult(filter(seq1, pred)) -proc delete*[T](s: var seq[T], first, last: int) = +proc delete*[T](s: var seq[T], first=0, last=0) = ## Deletes in `s` the items at position `first` .. `last`. This modifies ## `s` itself, it does not return a copy. + ## + ## Example: + ## + ##.. code-block:: nimrod + ## let outcome = @[1,1,1,1,1,1,1,1] + ## var dest = @[1,1,1,2,2,2,2,2,2,1,1,1,1,1] + ## dest.delete(3, 8) + ## assert outcome == dest + var i = first var j = last+1 var newLen = len(s)-j+i @@ -129,9 +138,19 @@ proc delete*[T](s: var seq[T], first, last: int) = inc(j) setlen(s, newLen) -proc insert*[T](dest: var seq[T], src: openArray[T], pos: int) = +proc insert*[T](dest: var seq[T], src: openArray[T], pos=0) = ## Inserts items from `src` into `dest` at position `pos`. This modifies ## `dest` itself, it does not return a copy. + ## + ## Example: + ## + ##.. code-block:: nimrod + ## var dest = @[1,1,1,1,1,1,1,1] + ## let + ## src = @[2,2,2,2,2,2] + ## outcome = @[1,1,1,2,2,2,2,2,2,1,1,1,1,1] + ## dest.insert(src, 3) + ## assert dest == outcome var j = len(dest) - 1 var i = len(dest) + len(src) - 1 |