refined sugar (was DMD 0.165 release)
Walter Bright
newshound at digitalmars.com
Mon Aug 21 16:19:01 PDT 2006
kris wrote:
> Walter Bright wrote:
>> I was going to call this 1.0 RC1, but I just could not resist adding
>> the lazy expression evaluation. This adds one of the big capabilities
>> of common lisp.
>>
>> http://www.digitalmars.com/d/changelog.html
>
>
> We could already do "lazy expression eval" in D, using dmd164 delegates;
> sans new sugar. So that Lisp ability was already present?
Yes. But few to nobody noticed it, and I'll posit that this bit of sugar
will expand its use by a couple orders of magnitude.
> I like a bit of sugar as much as anyone, especially when it's part of
> some classy dark-chocolate. But there's some practical issues with this
> most recent syntactic sugar. The overload issue is a real one, and the
> added complexity of having to manually check a callee declaration before
> you can grok what happens to an expression arg will also become a
> realisitic problem. Particularly so when you happen to miss a method
> overload in some subclass somewhere.
D (and other languages) already have that with in, out, inout, implicit
conversions, all the proposals for const, mutable, and other storage
classes. C++ has it for reference types, const types, implicit
conversions, etc. You already cannot tell what is happening with the
arguments without looking at the prototype.
I'll also point out that C/C++ programs routinely use macros to do the
equivalent (and much worse).
> In this specific case, I suspect there needs to be an indication of some
> kind, at the call site, to clearly and unambiguously communicate to a
> person (and to the compiler) exactly what is going on.
There already was (and is) in the form of { return exp; }. It's just not
accepted - I can hardly count all the comments I get from people saying
D didn't support this capability, and when I point out the { return exp;
}, they frown like people do when you tell them broccoli is good for them.
> Otherwise, this
> may be just the kind of sugar that rots the teeth of D ?
Maybe, but I haven't seen any food stores carry the Odwalla vegetable
juice for years <g>.
I do understand your concern, and I think I understand the issues. Only
time and experience will tell us definitively if this is the right move
or not, but my gut tells me it is. I *do* know that this has a "gee
whiz" aspect to it that gets peoples' attention, and that's good for D
to help it develop its own clear place in the panopoly of programming
languages.
More information about the Digitalmars-d-announce
mailing list