[
https://issues.apache.org/jira/browse/GROOVY-11127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17744644#comment-17744644
]
ASF GitHub Bot commented on GROOVY-11127:
-----------------------------------------
merscwog commented on PR #1915:
URL: https://github.com/apache/groovy/pull/1915#issuecomment-1642201490
@paulk-asert I'm interpreting your response that your vision is for me to
retain the Iterable secondary arguments, and incorporate union() methods with
Set and SortedSet first arguments and Iterable as second arguments, along with
a comparators version, all to be utilized by '|' and '^'.
> Add '|', '&', and '^' operators to Set and SortedSet
> ----------------------------------------------------
>
> Key: GROOVY-11127
> URL: https://issues.apache.org/jira/browse/GROOVY-11127
> Project: Groovy
> Issue Type: New Feature
> Components: groovy-jdk
> Reporter: Spencer Allain
> Assignee: Paul King
> Priority: Trivial
> Fix For: 5.x
>
>
> Many languages conventionally allow sets to use '|' as union, '&' as
> intersection, and '^' as symmetric difference operations on sets.
> This ticket is proposing adding these operations as DefaultGroovyMethods for
> Set and SortedSet such that the below tests should pass:
> {code:java}
> Set a = [1,2,3,4] as Set
> Set b = [3,4,5,6] as Set
> assert (a | b) == [1,2,3,4,5,6] as Set
> assert (a & b) == [3,4] as Set
> assert (a ^ b) == [1,2,5,6] as Set
> Set d = ['a', 'B', 'c'] as Set
> Set e = ['A', 'b', 'D'] as Set
> assert d.and(e, String.CASE_INSENSITIVE_ORDER) == ['a', 'B'] as Set
> assert d.and(e, Comparator.naturalOrder()) == [] as Set
> assert d.xor(e, String.CASE_INSENSITIVE_ORDER) == ['c', 'D'] as Set
> assert d.xor(e, Comparator.naturalOrder()) == ['a', 'B', 'c', 'A', 'b', 'D']
> as Set
> {code}
> A [Pull Request|https://github.com/apache/groovy/pull/1915] exists that
> implements the desired additions for the 5.x groovy branch (master), but it
> should be fairly easy to make the functionality available in 4.x if desired.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)