OxL Справочник OxL
РусскийEnglish

fn fromFn

Builds an iterator from a pull function: each call returns the next element or none at the end.

Example:

oxl✓ проверяется в CI
fn main() io {
  var n = 0
  let it = fromFn(() => {
    n += 1
    if n <= 3 { n * 10 } else { none }
  })
  print("{it.collect()}")
}
Вывод
[10, 20, 30]
@intrinsic("iter.fromFn") pub(api) fn fromFn<T, effect F>(next: fn() -> T? F escaping) -> iter<T>  F

Сложность. O(1) to build; each pull calls `next` once.

С версии. 1.0.0-beta

Параметры

ИмяТип
nextfn() -> T? F escaping

Возвращает

iter<T> F

Эффекты

не объявлены (чистая, пока тело не говорит иное)

Определено в: std/core/iter.oxl:27

См. также