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

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

paulk-asert opened a new pull request, #2578:
URL: https://github.com/apache/groovy/pull/2578

   (no comment)




> A preliminary set of "fat-free" DGM methods
> -------------------------------------------
>
>                 Key: GROOVY-12054
>                 URL: https://issues.apache.org/jira/browse/GROOVY-12054
>             Project: Groovy
>          Issue Type: Sub-task
>            Reporter: Paul King
>            Assignee: Paul King
>            Priority: Major
>
> h2. Overview
> Continues the "fat-free lambda" work from GROOVY-12034 by adding 
> {{java.util.function}}\-typed overloads to the most-used higher-order DGM 
> methods. Pairs with the {{org.apache.groovy.util.Lambdas}} / {{Closures}} 
> {{curryWith}} helpers landed under GROOVY-12043 — callers can pass 
> {{Predicate}}/{{Function}}/{{Consumer}} (and the Bi-* / ObjInt-* SAMs where 
> shape demands) directly without {{Closure}} wrapping, and compose with 
> {{Lambdas.curryWith(...)}} for the right-curry pattern that motivated 
> GROOVY-12034.
> h2. Scope
> Prime candidates for direct use or use in combination with {{curryWith}}:
> * {{each(Iterable<T>, Consumer<? super T>)}} -> {{Iterable<T>}}
> * {{findAll(Iterable<T>, Predicate<? super T>)}} -> {{List<T>}}
> * {{find(Iterable<T>, Predicate<? super T>)}} -> {{T}}
> * {{any(Iterable<T>, Predicate<? super T>)}} -> {{boolean}}
> * {{every(Iterable<T>, Predicate<? super T>)}} -> {{boolean}}
> * {{inject(Iterable<T>, BinaryOperator<T>)}} -> {{T}} (unseeded)
> * {{inject(Iterable<E>, U initial, BiFunction<U, ? super E, U>)}} -> {{U}} 
> (seeded)
> * {{collect(Iterable<E>, C collector, Function<? super E, ? extends T>)}} -> 
> {{C}} (collector variant; the basic form {{collect(Iterable<E>, Function)}} 
> already landed under GROOVY-12034)
> * {{groupBy(Iterable<T>, Function<? super T, ? extends K>)}} -> {{Map<K, 
> List<T>>}}
> * {{eachWithIndex(Iterable<T>, ObjIntConsumer<? super T>)}} -> 
> {{Iterable<T>}} (uses {{ObjIntConsumer}} to avoid per-element {{Integer}} 
> autoboxing)
> * {{collectEntries(Iterable<E>, Function<? super E, ? extends Map.Entry<K, 
> V>>)}} -> {{Map<K, V>}} (single-function form; the two-function form already 
> exists)
> * {{collect(Map<K, V>, BiFunction<? super K, ? super V, ? extends T>)}} -> 
> {{List<T>}}
> * {{findAll(Map<K, V>, BiPredicate<? super K, ? super V>)}} -> {{Map<K, V>}}
> * {{collect(Iterator<E>, Function<? super E, ? extends T>)}} -> {{List<T>}}
> * {{findAll(Iterator<T>, Predicate<? super T>)}} -> {{List<T>}} — new; the 
> existing {{Closure}} family has no {{findAll(Iterator, Closure)}}, so this is 
> a fat-free-only addition for symmetry with {{collect(Iterator, Function)}}
> * {{findAll(Set<T>, Predicate<? super T>)}} -> {{Set<T>}} — the one method 
> where preserving the {{Set}} self-type matters for downstream membership 
> semantics
> Total: 16 new overloads.
> Prime candidates for explicit "With" style methods:
> * {{findAll(Iterable, BiPredicate<? super T, ? super P>, P)}} -> {{List}}
> * {{collect(Iterable, BiFunction<? super E, ? super P, ? extends R>, P)}} -> 
> {{List}}
> Total: 2 new overloads.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to