Human unreadable documentation - the ugly seam between simple D and complex D

rumbu via Digitalmars-d digitalmars-d at puremagic.com
Thu Mar 26 14:36:55 PDT 2015


On Thursday, 26 March 2015 at 19:45:19 UTC, Alex Parrill wrote:
> On Thursday, 26 March 2015 at 19:32:53 UTC, Idan Arye wrote:
>> ...snip...
>
> So tl;dr; make the template constraints in ddoc less prominent?
>
> The "new library reference preview" under Resources seems to 
> already have this (example: 
> http://dlang.org/library/std/algorithm/searching/starts_with.html)

This will not solve the readability problem:

- what is a range?
- what is a needle?
- what is a predicate?

Phobos is reinventing the OOP encapsulation without providing the 
minimal tools. IMHO, something similar to "interface" is 
mandatory to define constraints for "range" and the relationship 
between "needle" and "range". In another topic, someone proposed 
the keyword "constraint" - or - extend the concept of "interface" 
to other kind of types than classes and this will allow some 
compile-time interface implementation. Therefore, when I write:

void foo(IInputRange range) { ... }, range can be a class 
implementing IInputRange or any other type which supports the 
same calls described by IInputRange.

Another approach is to provide enough overloads for most used 
scenarios, like testing for prefixes in a string with case 
sensivity or not.









More information about the Digitalmars-d mailing list