On Tuesday, 15 December 2015 at 14:03:50 UTC, rumbu wrote:
This is a *good* documentation:
- "Count" is a better name than "walkLength"; every other programming language will use concepts similar to count, cnt, length, len.

meh, I like walkLength. I hate it when a innocuous looking little function does a bunch of expensive work unexpectedly, "walkLength" really points out the worst case. Also, it's important to be reminded that is might actually iterate your range, which the "walk" bit really does, so if it's an inputRange then say goodbye to your data.

- You don't need to understand computer science terms to find out what a function does;

A little nudge to understand some important concepts never hurts. It can sometimes get a bit obscure though, or be too self-referential (there are probably some non-trivial cycles in the required knowledge graph).

- If you are really interested about more than finding out the number of elements, there is a performance hint in the Remarks section.

Considering that despite the fact my phone can perform billions of calculations per second but it still takes >2s to open up a text-editor app (on a good day), it seems worthwhile to point out performance a little more forcefully than "here's some other information if you feel like it".

- Links are provided to concepts: even the return type (int) has a link.

[ ... ]

On the contrary, the D documentation, introduces a bunch of non-linked concepts, but it tells me that it's possible to perform O(n) evaluations:
- isInputRange
- isInfiniteRange
- hasLength
- empty
- popFront

We should definitely have more links.

There is no indication what happens if the range is undefined in D docs. In fact, inconsistent behavior:
- it will return 0 in case of null arrays;
- it will throw AccessViolation for null ranges (or probably segfault on Linux);

Fair point. I'd love it if phobos range functions treated arrays 100% consistently with custom ranges, but apparently that boat sailed off in multiple directions at once long ago...

Reply via email to