Proposed D2 Feature: => for anonymous delegates
Pelle Månsson
pelle.mansson at gmail.com
Wed Oct 21 05:23:06 PDT 2009
Andrei Alexandrescu wrote:
> Pelle Månsson wrote:
>> Andrei Alexandrescu wrote:
>>> Pelle Månsson wrote:
>>>> Jason House wrote:
>>>>> Andrei Alexandrescu Wrote:
>>>>>
>>>>>> Jason House wrote:
>>>>>>> Am I the only one that has trouble remembering how to write an
>>>>>>> inline
>>>>>>> anonymous delegate when calling a function? At a minimum, both Scala
>>>>>>> and C# use (args) => { body; } syntax. Can we please sneak it into
>>>>>>> D2?
>>>>>> We have (args) { body; }
>>>>>>
>>>>>> Andrei
>>>>>
>>>>> Somehow, I missed that. What kind of type inference, if any, is
>>>>> allowed? Scala and C# allow omiting the type. Lately I'm doing a
>>>>> lot of (x) => { return x.foo(7); } in C# and it's nice to omit the
>>>>> amazingly long type for x. The IDE even knows the type of x for
>>>>> intellisense... I think scala would allow x => foo(7), or maybe
>>>>> even => _.foo(7) or even _.foo(7). I haven't written much scala, so
>>>>> I may be way off...
>>>>
>>>> Recent experiments by myself indicate you cannot omit the type and
>>>> you cannot use auto for the type, so you actually need to type your
>>>> VeryLongClassName!(With, Templates) if you need it.
>>>>
>>>> I sort of miss automatic type deduction.
>>>
>>> Actually, full type deduction should be in vigor, but it is known
>>> that the feature has more than a few bugs. Feel free to report any
>>> instance in which type deduction does not work in bugzilla.
>>>
>>> Andrei
>>
>> int f(int delegate(int) g) {
>> return g(13);
>> }
>> void main() {
>> f((auto x) { return x+13; });
>> }
>>
>> This does not compile in D v2.034. Am I missing something?
>
> Dropping the "auto" should yield a compilable program. Please report
> that to bugzilla (http://d.puremagic.com/issues/enter_bug.cgi) or let me
> know and I'll do so.
>
> Thanks!
>
> Andrei
I'm afraid I do not understand, simply omitting the auto does not
compile either. Which one is the bug?
I'm putting this on the bugzilla now.
More information about the Digitalmars-d
mailing list