бесконечные последовательности kotlin с функцией итератора

Я смущен тем, как создать бесконечную последовательность в котлине для ленивой оценки.

В java:

IntStream.iterate(0, i -> i + 2) .limit(100) .forEach(System.out::println); 

но последовательности кажутся намного более запутанными, чем потоки java. Конструктор последовательности очень запутывает документ, поскольку он говорит:

 /** * Given an [iterator] function constructs a [Sequence] that returns values through the [Iterator] * provided by that function. * The values are evaluated lazily, and the sequence is potentially infinite. */ 

но я не знаю, что это означает с помощью функции итератора или как ее создать.

 Sequence { iterator(arrayOf<Int>()) } .forEach { print(it) } 

У меня есть это, которое компилируется, но, очевидно, ничего не печатает. Я не думаю, что моя функция итератора имеет смысл. Он хочет функцию, которая не принимает аргументов и возвращает итератор, который вообще не похож на функцию java .iterate. Итератор имеет конструктор, который принимает массив, что имело бы смысл, если бы у меня был набор данных для работы в массиве, но я этого не делаю. Я хочу работать с бесконечной последовательностью.

Нет .limit, поэтому я ранее пытался добавить .reduce, но аргументы для .reduce были еще более запутанными. Я думаю, что должен быть .toList, но я знал, что он не работает, поэтому я не пробовал.

Если кто-то покажет мне, как реализовать вышеупомянутый Java-код в lotlin, это очень поможет.

Давайте будем гением компьютера.