Functional programming in D and some reflexion on the () optionality.

deadalnix deadalnix at gmail.com
Tue Aug 7 07:52:05 PDT 2012


Le 06/08/2012 20:05, David Piepgrass a écrit :
> I'm not sure if I understand your point perfectly, but I definitely feel
> that the way D handles optional parens is awful.

That is the point.

More specifically, the fact that D picks functionality from different 
paradigm here that totally don't integrate with each other.

  - Like in functional, function are called without ().
  - Purity isn't enforced, so the () is actually important so . . .
  - Function cannot be first class without ambiguities. So they aren't.
  - A first class function exists, and the behavior is different than 
other functions.
  - Member methods have semantic similar to declared ones.
  - But UFCS don't. They also don't have the behavior of first class 
object cited above.
  - UFCS include it's own layer of mess.
  - @property does the same.
  - Most of this isn't defined anywhere, except in dmd source code.
  - dmd source code is known to have bugs on the very point, so no spec 
exists at all. Not even documents describing the intent that can clarify 
what is a bug and what is feature.

So what ? So it is unlikely that any other tool will have semantic 
identical to dmd's. At this point, I'm questioning if any tool should 
even try.


More information about the Digitalmars-d mailing list