Project

General

Profile

Bug #6158 ยป lazy_bang.diff

gregolsen (Innokenty Mikhailov), 03/17/2012 07:36 AM

View differences:

my_enumerator.c 2012-03-17 00:29:29.524453207 +0200
}
static VALUE
lazy_map_bang(VALUE obj)
{
VALUE result = lazy_map(obj);
return rb_funcall(result, rb_intern("to_a"), 0, 0);
}
static VALUE
lazy_flat_map_i(VALUE i, VALUE yielder, int argc, VALUE *argv)
{
return rb_funcall2(yielder, id_yield, argc, argv);
......
rb_define_method(rb_cEnumerator, "rewind", enumerator_rewind, 0);
rb_define_method(rb_cEnumerator, "inspect", enumerator_inspect, 0);
/* Lazy */
/* Enumerable::Lazy */
rb_cLazy = rb_define_class_under(rb_cEnumerator, "Lazy", rb_cEnumerator);
rb_define_method(rb_mEnumerable, "lazy", enumerable_lazy, 0);
rb_define_method(rb_cLazy, "initialize", lazy_initialize, -1);
rb_define_method(rb_cLazy, "map", lazy_map, 0);
rb_define_method(rb_cLazy, "map!", lazy_map_bang, 0);
rb_define_method(rb_cLazy, "flat_map", lazy_flat_map, 0);
rb_define_method(rb_cLazy, "select", lazy_select, 0);
rb_define_method(rb_cLazy, "reject", lazy_reject, 0);
    (1-1/1)