Design for collections upgrades

Stephen Colebourne scolebourne at
Tue Mar 8 15:49:37 PST 2011

On 8 March 2011 23:23, Ola Bini <ola.bini at> wrote:
>> A better argument against making filter() return a stream is that it's
>> unexpected. The verb "filter" means "filter", not "create a stream
>> that when later evaluated will filter." You can imagine users putting
> I personally am a fan of this argument. I ended up using the past tense
> for lazy sequences in Ioke for this specific reason. It becomes
> immediately obvious if you're in strict or lazy-land based on the tense
> of the method names. To Brian's argument, the type system will tell you
> too, but that's not always apparent from reading a specific line of code.

Sounds like a coding style I've used:
 list.filter(predicate)  // alters list itself
 list.filtered(predicate)  // returns a new list

This chimes with the use of past tense in JSR-310, Joda-Time and similar.


More information about the lambda-dev mailing list