From 3647c03cadfce2ccaec136590a8acd8a736d0bb0 Mon Sep 17 00:00:00 2001 From: cooldome Date: Sat, 27 Apr 2019 12:41:08 +0100 Subject: reimplement_pr_10974 (#11130) --- lib/pure/collections/sequtils.nim | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'lib/pure/collections/sequtils.nim') diff --git a/lib/pure/collections/sequtils.nim b/lib/pure/collections/sequtils.nim index 253340379..e39c1fb80 100644 --- a/lib/pure/collections/sequtils.nim +++ b/lib/pure/collections/sequtils.nim @@ -949,6 +949,14 @@ macro mapLiterals*(constructor, op: untyped; ## works for nested tuples of arrays of sets etc. result = mapLitsImpl(constructor, op, nested.boolVal) +iterator items*[T](xs: iterator: T): T = + ## iterates over each element yielded by a closure iterator. This may + ## not seem particularly useful on its own, but this allows closure + ## iterators to be used by the the mapIt, filterIt, allIt, anyIt, etc. + ## templates. + for x in xs(): + yield x + when isMainModule: import strutils from algorithm import sorted @@ -1382,5 +1390,13 @@ when isMainModule: doAssert outp == @[@["a", "b"], @["c", "d"]] + block: + proc iter(len: int): auto = + result = iterator(): int = + for i in 0..