[ 
https://issues.apache.org/jira/browse/GROOVY-11586?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paul King updated GROOVY-11586:
-------------------------------
    Issue Type: New Feature  (was: Improvement)

> Provide an injectAll DGM method
> -------------------------------
>
>                 Key: GROOVY-11586
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11586
>             Project: Groovy
>          Issue Type: New Feature
>            Reporter: Paul King
>            Assignee: Paul King
>            Priority: Major
>             Fix For: 5.0.0-beta-1
>
>
> Streams have both reduce and scan (in gatherers as part of JDK 24). Groovy 
> has inject for reduce but no equivalent for scan. The intention is to provide 
> injectAll to provide this:
> {code:groovy}
> assert (1..3).injectAll(''){ carry, next -> carry + next } == ['1', '12', 
> '123']
> var runningAvg = [1.0, 2.0, 3.0].injectAll([0.0, 0, null]){ accum, next ->
>     var total = accum[0] + next
>     var count = accum[1] + 1
>     [total, count, total/count]
> }
> assert runningAvg*.get(2) == [1.0, 1.5, 2.0]
> assert [a:1, b:2, c:3].injectAll('') { carry, k, v ->
>     carry + k * v
> } == ['a', 'abb', 'abbccc']
> {code}



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

Reply via email to