Ranges

Derek Parnell derek at psych.ward
Thu Jun 18 18:57:45 PDT 2009


On Thu, 18 Jun 2009 21:00:08 -0400, bearophile wrote:

> Thank you Derek Parnell for your nice summary about ranges:
> with to your post my understanding of this topic has gone
> from 10% to 15% :-)

LOL ... glad to have helped a tiny bit.
 
> There are things I don't understand from what you have written:
> 
>>OutputRange ...
> In what othr situations you may use/need an OutputRange?

I haven't got a clue. I'm only trying to put into simpler words what I read
in the official documentation.
 
>>ForwardRange ...
> 
> I don't understand and I don't know what checkpointing may mean there.

It's just a way to save your place in an iteration so that presumably you
can come back to that spot later on.

> I suggest to explain those things better, and then add 3 or more examples
> (very different from each other, complete, real-world and
> ready-to-be-copied-pasted-and-run, like you can find in every page of
> Borland Delphi documentation) for each kind of range. And then to put
> the page on the D Wiki :-)

That would be nice. Hmmm... I'll see if I can do something ...
 
>>Now I admit that these are not method names I would have choosen ...
> 
> Andrei has shown that inventing very good names for those methods
> isn't easy...

Yes, he certainly has.

> And putting lot of uppercase letters in the middle of those names
> isn't nice, nor handy, and it's visually noisy.

Eye-of-the-beholder situation. Whether one uses "getelement",
"get_element", "GetElement", "Get_Element", "getElement", "GETELEMENT",
"element.get", ... is beside the point. 

What I was trying to show was that the current names do not intuitively
tell me what is the purpose of the methods. Does 'empty()' return a Boolean
that tells me if the set is empty or not, or does it return an empty set,
or does it cause the set to become empty, ??? A method name that consists
of a single word that can be interpreted as an adjective or a verb or a
noun, etc, is ambiguous, IMO. That is why in imperative languages I prefer
to see method names that reduce the potential for ambiguous interpretations
by using the form  <verb>[<adjective>]<noun>

   is_empty
   get_front
   add_element
   get_background_color

etc ...

Of course, if an unambiguous name exists it should be used, and there are
also abbreviations that can be employed.

But anyhow, I digress as this is just a personal style issue and not worth
discussing at this point.

-- 
Derek Parnell
Melbourne, Australia
skype: derek.j.parnell



More information about the Digitalmars-d mailing list