summary refs log tree commit diff stats
path: root/tests/iter/tconcat.nim
diff options
context:
space:
mode:
authorDominik Picheta <dominikpicheta@googlemail.com>2015-04-30 16:09:27 +0100
committerDominik Picheta <dominikpicheta@googlemail.com>2015-04-30 16:09:27 +0100
commit0be654efe11311fcf1200c0e7dba9ecd55fa5591 (patch)
tree7f55b6c5f467a7094fb0978841a08a9b1764f0c3 /tests/iter/tconcat.nim
parent4e778f9aac184655135daaff6579ef4a553d225a (diff)
parentd9d5aa60b7df936ffe6149143c7202604f71465f (diff)
downloadNim-0be654efe11311fcf1200c0e7dba9ecd55fa5591.tar.gz
Merge branch 'devel'
Diffstat (limited to 'tests/iter/tconcat.nim')
-rw-r--r--tests/iter/tconcat.nim24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/iter/tconcat.nim b/tests/iter/tconcat.nim
new file mode 100644
index 000000000..477ac5e26
--- /dev/null
+++ b/tests/iter/tconcat.nim
@@ -0,0 +1,24 @@
+discard """
+  output: '''1
+2
+3
+4
+20
+21
+22
+23'''
+"""
+
+proc toIter*[T](s: Slice[T]): iterator: T =
+  iterator it: T {.closure.} =
+    for x in s.a..s.b:
+      yield x
+  return it
+
+iterator concat*[T](its: varargs[T, toIter]): auto =
+  for i in its:
+    for x in i():
+      yield x
+
+for i in concat(1..4, 20..23):
+  echo i