poll for properties

Michel Fortin michel.fortin at michelf.com
Wed Jul 29 08:48:40 PDT 2009


On 2009-07-29 10:37:51 -0400, Andrei Alexandrescu 
<SeeWebsiteForEmail at erdani.org> said:

> Michel Fortin wrote:
>> On 2009-07-28 19:59:30 -0400, Andrei Alexandrescu 
>> <SeeWebsiteForEmail at erdani.org> said:
>> 
>>> The way Phobos does things is the following:
>>> 
>>> a) You must define .empty which completes in O(1).
>>> 
>>> b) If you can define .length with O(1), define it, otherwise don't.
>>> 
>>> Then Phobos defines walkLength() on a best-effort basis which is 
>>> guaranteed to finish in O(n) but may finish faster. It uses .length if 
>>> defined, or else it just iterates the range to exhaustion.
>> 
>> This looks like a good approach. I'm just not too thrilled by the name 
>> "walkLength". But perhaps I'm the only one.
> 
> STL defines distance() but people tend to forget it's O(n). So I chose 
> a name that makes it rather obvious it's O(n).

In the programming guidelines document I've just posted on the wiki 
(see other thread), I'm recommending using the prefix "calc" for any 
accessor that performs an expensive operation. For length, that'd mean 
"calcLength" (remains to be defined: "expensive operation").

The idea is to have a short word generic enough to apply to any kind of 
expensive operation. "walk", while it makes sense for this specific 
situation, is not generic enough to be used as a convention. And you're 
right: "distance" is much worse than "walkLength".


-- 
Michel Fortin
michel.fortin at michelf.com
http://michelf.com/




More information about the Digitalmars-d mailing list