End of Life Ruby 3.1 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →
instance method
Enumerator::Lazy#_enumerable_take
_enumerable_take(p1)
enumerator.c
View on GitHub ↗
static VALUE
lazy_take(VALUE obj, VALUE n)
{
long len = NUM2LONG(n);
int argc = 0;
VALUE argv[2];
if (len < 0) {
rb_raise(rb_eArgError, "attempt to take negative size");
}
if (len == 0) {
argv[0] = sym_cycle;
argv[1] = INT2NUM(0);
argc = 2;
}
return lazy_add_method(obj, argc, argv, n, rb_ary_new3(1, n), &lazy_take_funcs);
}
Alias of #take
Like Enumerable#take, but chains operation to be lazy-evaluated.
See also
#take
#_enumerable_select
#_enumerable_take_while
#_enumerable_reject
also in
4.0 · 3.4 · 3.3 · 3.2 · 3.0