To Stream.slice(fromInclusive, toExclusive) or Stream.slice(toSkip, limit) that is the question

Joe Bowbeer joe.bowbeer at
Thu Oct 10 18:28:00 PDT 2013

slice(start, end) would be more useful and more consistent with its use in
other languages (Python, Perl).

In Python, the elements are start .. end-1 whereas the end is inclusive in
Perl.  But I think the use of start:end is fairly consistent for most
implementations of slice.

I claim this would be more useful because otherwise there's no difference
between slice and skip(start) + limit(end-start)


On Thu, Oct 10, 2013 at 5:04 PM, Brian Goetz <brian.goetz at> wrote:

> FWIW, this is what the semantics were originally, and they got modified
> to be consistent with substring() when we renamed slice to substring()
> originally.  So this is a reversion to where we were before.
> On 10/10/2013 7:54 PM, Mike Duigou wrote:
>> Hello all;
>> In the review of the renaming patch for Stream.substream() -> slice()
>> Brian asked me to consider also changing the semantics of the
>> parameters from the current Stream.slice(fromInclusive,**toExclusive).
>> The rationale is that we then have only one sense of usage in the
>> parameters for skip/limit/slice. This also makes slice() more
>> obviously equivalent to skip(toSkip).limit(limit). I am inclined to
>> agree with him that using the same semantics for the parameters
>> across the three methods has value.
>> I will go forward with changing to Stream.slice(toSkip,limit) before
>> Monday assuming there is no outcry.
>> Mike
-------------- next part --------------
An HTML attachment was scrubbed...

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