On Wednesday, 19 September 2012 at 04:03:44 UTC, Jonathan M Davis
wrote:
On Wednesday, September 19, 2012 05:36:36 Craig Dillabaugh wrote:
Thanks, a few others have pointed that out to me too. But as a D newbie how would I have any clue what splitter returns since the
return type is auto?

The documentation says that it returns a range. Presumably then, the problem is that you're not familiar with ranges, and that needs to be handled better. We really need a proper article/tutorial on the main site which explains them, and we don't. But I don't know what we'd do differently in the documentation for functions in general. Ranges are a concept that are used quite heavily in Phobos, and it wouldn't make sense to try and explain them for every function
that uses them.
From:
http://dlang.org/phobos/std_array.html#splitter

The documentation (copied and pasted) for splitter reads:

auto splitter(C)(C[] s);
Splits a string by whitespace.

Example:
auto a = " a     bcd   ef gh ";
assert(equal(splitter(a), ["", "a", "bcd", "ef", "gh"][]));

I have this awful feeling that I am missing something blatantly
obvious here, and that by posting this reply I am leaving a
permanent testament to my stupidity on the internet, but I really
want to understand this ...

I just want to figure out how you can explicitly say "the
documentation says it returns a range" based on that!  Is is
simply because you recognize the range from the assert statement
in the example?

I am sure the Phobos developers have better things to do then
writing documentation that coddles newbies, but could the
documentation not say:

auto splitter(C)(C[] s);
Splits a string by whitespace. Returns an InputRange of all
substrings.

Or something to that affect.

Thanks again for your time.

clip ....

Reply via email to