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);
}