Project

General

Profile

Feature #6515 » feature_6515_array_part_of_v2.patch

lellisga (Li Ellis Galardo), 05/30/2012 11:32 PM

View differences:

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);
}
/*
(4-4/5)