Feature #6515 » feature_6515_array_part_of_v2.patch
array.c | ||
---|---|---|
* ary.part_of? other_ary -> bool
|
||
*
|
||
* Array 'A' is part of another array 'B' if
|
||
* each element from 'A' are include in 'B'
|
||
* each element from 'A' are included in 'B'
|
||
*
|
||
* [ "a", "c" ].part_of? [ "a", "b", "c" ] #=> true
|
||
* [ "a", "d" ].part_of? [ "a", "b", "c" ] #=> false
|
||
... | ... | |
rb_ary_part_of(VALUE ary1, VALUE ary2)
|
||
{
|
||
if (ary1 == ary2) return Qtrue;
|
||
VALUE ary3, ary4;
|
||
ary3 = rb_ary_and(ary1, ary2);
|
||
ary4 = rb_ary_diff(ary1, ary3);
|
||
return rb_ary_empty_p(ary4);
|
||
ary2 = rb_ary_and(ary1, ary2);
|
||
ary2 = rb_ary_diff(ary1, ary2);
|
||
return rb_ary_empty_p(ary2);
|
||
}
|
||
/*
|