Loose end: ints(), longs()
Brian Goetz
brian.goetz at oracle.com
Tue May 28 09:47:57 PDT 2013
> I'm not really keen on the ints and longs methods though. I'm already
> used to intRange, which seems short enough, and is consistent with the
> other names, none of which are very short.
Actually intRange was already shortened to range() when it got moved
from Streams to IntStream:
IntStream r = IntStream.range(1, 10)
The name itself is plenty short; it is the arguments that seem verbose
and unnecessarily specific:
IntStream.rangeClosed(0, Integer.MAX_VALUE)
seems more "leaky" than
IntStream.allTheInts()
But are you saying you're fine with the verbose form? Or simply you'd
rather have a name that sounds more like "range"?
>
> On May 28, 2013 9:27 AM, "Brian Goetz" <brian.goetz at oracle.com
> <mailto:brian.goetz at oracle.com>> wrote:
>
> Another loose end is a method to generate "all" ints / longs (which
> are sugar for ranges 0..MAX_VALUE.) These show up in pedagogical
> examples all the time:
>
> ints().filter(i -> isPrime(i)).limit(100)
>
> The logical place for them is:
>
> IntStream.ints()
> LongStream.longs()
>
> but some have raised concern that this might be confusing because we
> have an instance method on IntStream called "longs()" which widens
> the elements from int to long. While this isn't fatal, it might be
> confusing.
>
> Perhaps it would be better to rename these conversion methods:
>
> IntStream: longs(), doubles(), boxed()
> LongStream: doubles(), boxed()
> DoubleStream: boxed()
>
> to asInts(), asLongs(), and asBoxed()?
>
> In retrospect, these seem better names anyway. And they also
> eliminate the conflict above.
>
More information about the lambda-libs-spec-experts
mailing list