Reducing reduce
Paul Sandoz
paul.sandoz at oracle.com
Mon Feb 11 09:43:09 PST 2013
On Feb 11, 2013, at 6:12 PM, Brian Goetz <brian.goetz at Oracle.COM> wrote:
> Thanks, Joe. I knew I was missing some use cases. This is definitely a case where the fused version is more efficient, since it can elide some work based on the previous comparison state.
>
And efficiency wise it would be nice to avoid the boxed().
Paul.
> On 2/11/2013 11:57 AM, Joe Bowbeer wrote:
>> My parallel string-compare sample provides two implementations (below).
>>
>> Will both of these survive your changes?
>>
>> bitbucket.org/joebowbeer/stringcompare
>> <http://bitbucket.org/joebowbeer/stringcompare>
>>
>> int compareMapReduce(String s1, String s2) {
>> assert s1.length() == s2.length();
>> return intRange(0, s1.length()).parallel()
>> .map(i -> compare(s1.charAt(i), s2.charAt(i)))
>> .reduce(0, (l, r) -> (l != 0) ? l : r);
>> }
>>
>> int compareBoxedReduce(String s1, String s2) {
>> assert s1.length() == s2.length();
>> return intRange(0, s1.length()).parallel().boxed()
>> .reduce(0, (l, i) -> (l != 0) ? l : compare(s1.charAt(i), s2.charAt(i)),
>> (l, r) -> (l != 0) ? l : r);
>> }
>>
More information about the lambda-libs-spec-experts
mailing list