Why are homepage examples too complicated?

Mark via Digitalmars-d digitalmars-d at puremagic.com
Fri Oct 21 05:31:00 PDT 2016


On Friday, 21 October 2016 at 10:24:40 UTC, Chris wrote:
> On Thursday, 20 October 2016 at 21:52:09 UTC, Andrei 
> Alexandrescu wrote:
>> On 10/20/2016 04:16 PM, Karabuta wrote:
>
>>
>> We can't assume all beginners come from imperative languages. 
>> D beginners may come from languages where the idiomatic way of 
>> doing things is by means of pipelines. Generally it's not 
>> worth debating this because there's so little evidence to 
>> dwell on - please let's keep both and move with our lives. 
>> Thanks! -- Andrei
>
> Today many people don't even want to see a for-loop. What we 
> could do, though, is to give an example of each common or 
> "expected" feature (OOP, functional, concurrency, memory model 
> etc.), so that people see immediately that they can do A, B 
> _and_ C in D :-)

I second that.

Also, it may be a good idea to simply use classical algorithms 
(binary search, quicksort, etc.), written in "D style", as 
examples. The typical visitor is probably familiar with these 
algorithms and thus the foreign syntax won't be as scary. It also 
puts the syntax in a context that the visitor is already familiar 
with, so there is a good chance that he'll deduce its meaning 
even without supplementary comments.

For instance, TDPL has the following implementation of binary 
search in its introductory chapter:

bool binarySearch(T)(T[] input, T value) {
    while (!input.empty) {
       auto i = input.length / 2;
       auto mid = input[i];
       if (mid > value) input = input[0 .. i];
       else if (mid < value) input = input[i + 1 .. $];
       else return true;
    }
    return false;
}

Nothing too fancy, but it's a good example of how array slicing 
in D helps make the code cleaner, shorter and easier to 
understand.


More information about the Digitalmars-d mailing list