[Issue 7198] Delegate literals with nameless arguments fail to infer a type

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon Jan 2 06:41:37 PST 2012


http://d.puremagic.com/issues/show_bug.cgi?id=7198



--- Comment #5 from Alex Rønne Petersen <xtzgzorex at gmail.com> 2012-01-02 06:41:35 PST ---
(In reply to comment #4)
> (In reply to comment #3)
> > (I don't actually know why we have unnamed parameters at all; most modern
> > languages simply don't allow this. In addition, unused parameters in
> > delegate/function literals/lambdas sort of seems to go against the entire idea
> > with lambda functions, in the general case.)
> 
> Useful situations for unnamed parameters:
> 
> * Declaring a delegate type
> 
> void delegate (int) dg;

But that's a type signature, not a literal.

> 
> * Declaring a function/method without implementation
> 
> void foo (int);

This, on the other hand, I do not like. Without a parameter name, you have to
look at the implementation to have a clue what it means. That makes the
declaration (more or less) useless.

> 
> * Overriding/implementing a method where a parameter isn't needed
> 
> class Foo {
>     abstract void foo (int a);
> }
> 
> class Bar : Foo {
>     void foo (int) {}
> }
> 

Point taken, though naming it _ or similar usually works.

> 
> These are the situations I see it as might being useful but I would say that
> adding names to the parameters adds documentation and that's always a good
> thing.

Agreed.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list