Reddit: why aren't people using D?

Daniel Keep daniel.keep.lists at gmail.com
Fri Jul 24 01:31:05 PDT 2009



Walter Bright wrote:
> Daniel Keep wrote:
>> That's true, but you haven't addressed the other side of it: property
>> setters.
> 
> Right. Consider the case where there's a pure function with no
> arguments, and an overload with the same name and one argument, and no
> other overloads. Wouldn't it be reasonable to take that as a property
> setter?
> 
>> With D, you would need to explicitly state which methods are properties
>> manually somehow; dunno how you would, though.  Especially when you
>> consider subclassing and mixins.
> 
> See my rule above - I think it'll work.

Actually, I've now come up with a counter-example for the idea of using
pure at all:

class Lazy(T)
{
    private
    {
        T v;
        T delegate() dg;
    }
    this(T delegate() dg) { this.dg = dg; }
    T value()
    {
        if( dg !is null )
        {
            v = dg();
            dg = null;
        }
        return v;
    }
}

You can't make value pure, but it is supposed to be a property.  One of
the examples Nick gives in DIP4 is a property that accesses an SQL
database; there's no way to make that pure!



More information about the Digitalmars-d mailing list