diff options
author | Hans Raaf <hara@oderwat.de> | 2015-03-06 16:01:05 +0100 |
---|---|---|
committer | Hans Raaf <hara@oderwat.de> | 2015-03-06 18:16:00 +0100 |
commit | 9e2f79251ce3f4982eea457c1f0ced7e1694a4f1 (patch) | |
tree | cb0933fdbf7cc88f678055f0f20b39a599587866 /lib/pure/collections | |
parent | 534fe46b8264cb8db71a254f0c6b62b1e50dfb1e (diff) | |
download | Nim-9e2f79251ce3f4982eea457c1f0ced7e1694a4f1.tar.gz |
Do we want we to use the typesystem like this?
Diffstat (limited to 'lib/pure/collections')
-rw-r--r-- | lib/pure/collections/sequtils.nim | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/pure/collections/sequtils.nim b/lib/pure/collections/sequtils.nim index 38499aa4f..2ad7dea0a 100644 --- a/lib/pure/collections/sequtils.nim +++ b/lib/pure/collections/sequtils.nim @@ -104,7 +104,7 @@ proc zip*[S, T](seq1: seq[S], seq2: seq[T]): seq[tuple[a: S, b: T]] = newSeq(result, m) for i in 0 .. m-1: result[i] = (seq1[i], seq2[i]) -proc distribute*[T](s: seq[T], num: int, spread = true): seq[seq[T]] = +proc distribute*[T](s: seq[T], num: Positive, spread = true): seq[seq[T]] = ## Splits and distributes a sequence `s` into `num` sub sequences. ## ## Returns a sequence of `num` sequences. For some input values this is the @@ -131,11 +131,12 @@ proc distribute*[T](s: seq[T], num: int, spread = true): seq[seq[T]] = ## assert numbers.distribute(6)[0] == @[1, 2] ## assert numbers.distribute(6)[5] == @[7] assert(not s.isNil, "`s` can't be nil") - assert(num > 0, "`num` has to be greater than zero") if num < 2: result = @[s] return + let num = cast[int](num) + # Create the result and calculate the stride size and the remainder if any. result = newSeq[seq[T]](num) var |