Ranges redux

Paul Sandoz paul.sandoz at oracle.com
Mon May 13 03:30:08 PDT 2013


On May 8, 2013, at 9:05 PM, Paul Sandoz <Paul.Sandoz at oracle.com> wrote:

> Hi,
> 
> I think we reached consensus on:
> 
> - {Int, Long}String.range/rangeClosed for step of 1
> 
> IMO that seems good enough, and we can provide examples using map for step > 1 and descending ranges.
> 

In the lambda repo:

  http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0e0e19f03f63


IntStream.ints() and LongStream.longs() are also included. 

Bikeshed opportunity? the static method LongStream.longs() could be confusing with the method IntStream.longs() for widening from ints to longs.


> We have still to converge on DoubleStream.range, which might suggest no strong opinions or we lack the use-cases. There are some tricky edge-cases to deal with. I am very close to proposing we drop it...
> 

Perhaps a strong sign of whether we keep this or not is whether we can agree about the upper bound and half-open/closed ranges.

Sequentially DoubleStream.range is currently equivalent to the following:

     *     long size = (long) Math.ceil((startInclusive - endExclusive) / step);
     *     long i = 0
     *     for (double v = startInclusive; i < size; i++, v = startInclusive + step * i) {
     *         ...
     *     }

If startInclusive + step * size == endExclusive then the range could be closed, otherwise half-open. 

Is that a reasonable expectation?

Paul.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/lambda-libs-spec-experts/attachments/20130513/49cd7610/attachment.html 


More information about the lambda-libs-spec-experts mailing list