From: eregontp@... Date: 2019-08-02T19:36:37+00:00 Subject: [ruby-core:94116] [Ruby master Feature#16039] Array#contains? to check if one array contains another array Issue #16039 has been updated by Eregon (Benoit Daloze). `contains?` sounds like it would check if an element is part of the Array, i.e., like `include?`. So I think the name is problematic. `superset?` would be a better name, and that's defined on `Set`. So I think in this case it's better to simply use a `Set` like `Set[1,2,3].superset?(Set[2,3])`. FWIW, `Array#-` already uses a Hash or Set internally, so an efficient implementation has to use a Set for such functionality anyway. I don't it's valuable to hide this behavior by having a method on Array, I think it's better to be explicit and use Set directly in this case. ---------------------------------------- Feature #16039: Array#contains? to check if one array contains another array https://bugs.ruby-lang.org/issues/16039#change-80358 * Author: cha1tanya (Prathamesh Sonpatki) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- I woud like to propose `Array#contains?` which will check if the one array is part of another array. Implementation can be as follows: ``` def contains?(other) (other - self).empty? end ``` Some test cases: ``` [1, 2, 3].contains?([2, 3]) => true [1, 2, 3].contains?([]) => true [1, 2, 3].contains?([1, 2, 3, 4]) => false [].contains?([]) => true [].contains?([1, 2, 3, 4]) => false ``` -- https://bugs.ruby-lang.org/ Unsubscribe: