Iter type

Iterator. Parent type for all specific iterator types.

Direct children types

ArrIter
Arr (array) iterator.
ConstIter
Iterator that returns given value forever.
FilterIter
EXPERIMENTAL! Do not use!
FunIter
EXPERIMENTAL! Do not use!
HashIter
EXPERIMENTAL Hash iterator.
MapIter
EXPERIMENTAL! Do not use!
RangeIter
Iterates over a Range

Constructors

Iter(i:Iter)
Supports "for i in existing_iterator". Useful if you want to have a reference to the Iter for any reason.

Automatically called by NGS for syntax

for my_var in something { ... }

Returns

i

Example

# Prints 0, 2, ...
for i in my_iter=Iter(10) {
  echo(i)
  my_iter.drop(1)
}
Iter(f:Fun)
Undocumented
Iter(r:NumRange)
Create Iter from NumRange
Iter(n:Int)
Create Iter from Int
Iter(arr:Arr)
Calls ArrIter constructor.

Returns

ArrIter

Example

i = Iter([10, 20, 30])
Iter(h:Hash)
Undocumented
Iter(s:Set)
Iterator for Set. Currently implemented as ArrIter for the Set elements.

Returns

ArrIter
Iter(s:SubSeq)
Iterator over elements of the subsequence

Returns

Iter
Iter(rd:ResDef)
EXPERIMENTAL! Do not use!

Methods

drop(i:Iter, n:Int)
Fetch and drop next n values from iterator i.

Example

i = Iter([10,20,30])
drop(i, 1)
echo(i.next())
# Output: 20
each(i:Iter, cb:Fun)
Calls cb with each element from i

Returns

i

Example

Iter(10).each(echo)  # Prints 0 to 9
filter(i:Iter, pattern:Any)
EXPERIMENTAL! Do not use!
init(i:MapIter, upstream_iter:Iter, mapper:Fun)
EXPERIMENTAL! Do not use!
init(i:FilterIter, upstream_iter:Iter, pattern:Any)
EXPERIMENTAL! Do not use!
JsonData(i:Iter)
Convert Iter into JSON compatible data structure - array. Forces evaluation of MapIter for example.
map(i:Iter, mapper:Fun)
EXPERIMENTAL! Do not use!
reject(i:Iter, pattern:Any)
EXPERIMENTAL! Do not use!
skip(i:Iter, pattern:Any=method)
Returns the given Iter but skipping leading elements while the pattern matches. If all the elements matches the pattern the Iter will be empty.

Returns

Iter

Example

[0, 2, 3, 25, 19, 7].Iter().skip(F(x) x != 3).Arr() returns [3, 25, 19, 7]
skip(i:Iter, count:Int)
Returns the given Iter after consuming first count elements.

Returns

Iter

Example

[3, 4, 5, 34, 5].Iter().skip(3).Arr() == [34, 5] 
take(i:Iter, n:Int)
Fetch and convert to array next n values from iterator i.

Example

i = Iter([10,20,30])
echo(i.take(2))  # Output: [10,20]
throw_if_no_next(i:Iter)
Private method of Iter.ngs, will be hidden in future.