Как я могу создать то, что другие языки называют ленивой последовательностью или функцией генератора?
В Python я могу использовать yield
, как в следующем примере (из документов Python), чтобы лениво сгенерировать последовательность, которая является итерируемой, таким образом, чтобы не использовать память промежуточного списка:
# 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?