[ 
https://issues.apache.org/jira/browse/GROOVY-11127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17743584#comment-17743584
 ] 

ASF GitHub Bot commented on GROOVY-11127:
-----------------------------------------

merscwog commented on PR #1915:
URL: https://github.com/apache/groovy/pull/1915#issuecomment-1637215821

   Moving the methods to follow a convention would not be difficult.
   
   Without constraining the two types to Set, there would definitely be much 
more work to make the operations available for all possible Iterable types as 
both arguments and keep the return type semantics.




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

Reply via email to