On Friday, 22 November 2013 at 01:33:44 UTC, Kenji Hara wrote:
2013/11/22 deadalnix <[email protected]>

Why do we make the distinction between a first class function and a
function in the first place ?


(This is just my recognition, so might be not same with true history. But I
think there's not so big mistake.)

Historically, mixing function themselves and function addresses had
introduced huge confusion for non-expert C programers.
Not to repeat the mistake, D completely distinguished the two at the syntax
level - func and &func.


The best way to solve the confusion is to get rid of one of the two concept altogether.

Fortunately it has introduced a good feature in D - when we use the name 'func' without & operator, it could be interpreted as a parenthesis-less
function call without ambiguity.
In D1, the feature was widely used.


It was indeed a really good feature in D1. It is however clashing with functional style quite badly.

At least to me, your argument is just to return to the C era. I think it
will introduce huge 'regression'.


This is an important misunderstanding of my position. The C era is bad, the D era is kind of better, but the exact same problem still exist. It is simply less visible.

The concept of function as you call it is useless and is both the source of the confusion you mention in C and the tricky cases you mention in D.

Reply via email to