diff options
author | Grzegorz Adam Hankiewicz <gradha@imap.cc> | 2012-12-13 19:28:34 +0100 |
---|---|---|
committer | Grzegorz Adam Hankiewicz <gradha@imap.cc> | 2013-01-03 22:38:56 +0100 |
commit | bd961fd76c1d61586ccdebc8abafa401ad3428e3 (patch) | |
tree | 56dfb3cd9a89c309beb5e8d4d15ad76925d03c71 | |
parent | 77492158aca520b6f5192885147953aa35e830b2 (diff) | |
download | Nim-bd961fd76c1d61586ccdebc8abafa401ad3428e3.tar.gz |
Moves toSeq template to public sequtils module.
-rw-r--r-- | lib/pure/collections/sequtils.nim | 6 | ||||
-rwxr-xr-x | tests/run/ttoseq.nim | 11 |
2 files changed, 11 insertions, 6 deletions
diff --git a/lib/pure/collections/sequtils.nim b/lib/pure/collections/sequtils.nim index 82679bb7f..0fda5700e 100644 --- a/lib/pure/collections/sequtils.nim +++ b/lib/pure/collections/sequtils.nim @@ -63,3 +63,9 @@ template filterIt*(seq1, pred: expr): expr {.immediate, dirty.} = if pred: result.add(it) result +template toSeq*(iter: expr): expr {.immediate.} = + ## Transforms any iterator into a sequence. + var result {.gensym.}: seq[type(iter)] = @[] + for x in iter: add(result, x) + result + diff --git a/tests/run/ttoseq.nim b/tests/run/ttoseq.nim index ec49489d0..34cc4824b 100755 --- a/tests/run/ttoseq.nim +++ b/tests/run/ttoseq.nim @@ -1,12 +1,11 @@ discard """ - output: "23456" + output: "2345623456" """ -template toSeq*(iter: expr): expr {.immediate.} = - var result: seq[type(iter)] = @[] - for x in iter: add(result, x) - result - +import sequtils + +for x in toSeq(countup(2, 6)): + stdout.write(x) for x in items(toSeq(countup(2, 6))): stdout.write(x) |