partition()
public
Returns two arrays, the first
containing the elements of enum for which the block evaluates to
true, the second containing the rest.
If no block is given, an enumerator is returned instead.
(1..6).partition { |v| v.even? }
Show source
static VALUE
enum_partition(VALUE obj)
{
NODE *memo;
RETURN_SIZED_ENUMERATOR(obj, 0, 0, enum_size);
memo = NEW_MEMO(rb_ary_new(), rb_ary_new(), 0);
rb_block_call(obj, id_each, 0, 0, partition_i, (VALUE)memo);
return rb_assoc_new(memo->u1.value, memo->u2.value);
}