Website message overhaul

Timon Gehr timon.gehr at gmx.ch
Mon Nov 14 12:29:06 PST 2011


On 11/14/2011 08:47 PM, Andrei Alexandrescu wrote:
> On 11/14/11 1:15 AM, Timon Gehr wrote:
>> Looks good, I think this is the right direction.
>>
>> Nitpicks:
>>
>> 1.
>>
>> // Type deduction works for function results. This is important for
>> generic
>> // functions, such as min below, which works correctly for all comparable
>> // types.
>> auto min(T1, T2)(T1 lhs, T2 rhs) {
>> return rhs < lhs ? rhs : lhs;
>> }
>>
>> It does not. The two types need to have a common type as well.
>
> It's difficult to be concise and complete simultaneously. The underlying
> assumption is that if two types are comparable, they also have a common
> type.

hm, maybe call the them 'compatible comparable types'?

>
>> 2.
>>
>> The scope statement example should actually show transactional code.
>> Otherwise the poor reader feels fooled into clicking "See example".
>> Using scope(exit) to write something at function exit is useful for
>> debugging, but scope(failure) is the real thing that is important to
>> show.
>
> Good point.
>
>> 3.
>>
>> If contract inheritance is to be promoted on the front page (and it is
>> certainly something that may attract developers), it should actually
>> work.
>
> Absolutely.

There has been disagreement on whether or not my bug report on the 
matter was valid.

What it means for your example:

// Interfaces and classe
interface Printable {
     void print(uint level)
     in { assert(level > 0); } // contract is part of the interface
}

// Interface implementation
class Widget : Printable {
     void print(uint level) { ... }
}

void main(){
     Widget w = new Widget();
     w.print(0); // passes through, but should not
}

Can you state in the issue tracker that the bug report is valid?
http://d.puremagic.com/issues/show_bug.cgi?id=6856


>
>> 4.
>>
>> If we can find a less buzzy word than 'Multi-paradigm power' to describe
>> D's multi-paradigm power, that would be nice, but I am also fine with
>> the current state of affairs.
>>
>> 5.
>>
>> The most important language features are not displayed at all. Where are
>> Metaprogramming, CTFE and code generation? It sure is hard to come up
>> with a short but convincing example, but I think we should try to.
>
> Those would be under the multi-paradigm thingie.
>

Ok. Maybe there could be a few LOC demonstrating the 'recurrence' 
function generating a few fibonacci numbers. I think it is a nice 
showcase, although I have never needed that particular function in real 
code :o). It has also the potential of showing Phobos' lazy functional 
style features. But unfortunately, most functional programmers will 
shriek for a moment when they see the argument order of 'take'.






More information about the Digitalmars-d mailing list