24 lines
320 B
Nim
24 lines
320 B
Nim
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
|