Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →
instance method
Enumerator::Lazy#take
(::Integer n) -> ::Array[E]
lazy.take(n) → lazy_enumerator
enumerator.c
View on GitHub ↗
static VALUE
lazy_take(VALUE obj, VALUE n)
{
rb_len_t len = NUM2LEN(n);
if (len < 0) {
rb_raise(rb_eArgError, "attempt to take negative size");
}
n = LEN2NUM(len); /* no more conversion */
return lazy_add_method(obj, 0, 0, n, rb_ary_new3(1, n), &lazy_take_funcs);
}
Like Enumerable#take, but chains operation to be lazy-evaluated.