D Ranges

Brad Anderson eco at gnuk.net
Fri Sep 13 10:35:16 PDT 2013


On Friday, 13 September 2013 at 14:39:29 UTC, Chris wrote:
> On Friday, 13 September 2013 at 13:42:07 UTC, Dicebot wrote:
>> On Friday, 13 September 2013 at 13:31:18 UTC, bearophile wrote:
>>> In most cases today you are free to omit those ():
>>>
>>> foreach (bySentence.byWord.byWhateverFormat.byReformatAgain) {
>>>
>>> Bye,
>>> bearophile
>>
>> ...but you shouldn't if you care about readability (leave at 
>> least the last pair in the line) :P
>
> It also helps other people (and me) to realize that it actually 
> _does_ something and doesn't just return a value. Often (not 
> always of course), if you omit the brackets it returns a value 
> without doing anything. But that's just a personal convention I 
> might abandon further down the road.

Since most ranges in std.algorithm are lazy they are usually not 
doing anything but setting a few members and returning a new 
range, often without having even touched the input range.  
Thinking about it I think I may start using () to denote eager 
versus lazy ranges in my UFCS chains.


More information about the Digitalmars-d mailing list