Генерация ленивых последовательностей в Rust
Как я могу создать то, что другие языки называют ленивой последовательностью или "генератор" функционировать?
В Python я могу использоватьyield
как в следующем примере (из Python 's docs) для ленивой генерации последовательности, которая повторяется таким образом, чтобы не использовать память промежуточного списка:
# a generator that yields items instead of returning a list
def firstn(n):
num = 0
while num < n:
yield num
num += 1
sum_of_first_n = sum(firstn(1000000))
Как я могу сделать что-то подобное в Rust?