Delegate

Jarrett Billingsley jarrett.billingsley at gmail.com
Tue Dec 2 11:55:51 PST 2008


On Tue, Dec 2, 2008 at 2:45 PM, Derek Parnell <derek at psych.ward> wrote:
> On Tue, 02 Dec 2008 19:30:47 +0100, Fabian Claßen wrote:
>
>> Hi
>> I have a problem:
>>
>> What's wrong about this code?
>> Code:
>>
>> import std.stdio;
>>
>> int main() {
>>       writefln("%f", add(100, 786, 56.0));
>>       return 0;
>> }
>>
>> double add(double delegate()[] dgs...) {
>>       double result = 0;
>>       foreach(double delegate() dg; dgs) {
>>               result += dg;
>>       }
>>       return result;
>> }
>>
>> Or a better question is: How can I get the value out of the delegate?
>
> I don't understand your code, sorry. It seems to me that the argument you
> supplied to add() is a list of doubles and not a list of delegates.

It's legal.  If you have a typesafe variadic array of delegates, you
can call the function as if it took a bunch of lazy parameters.



More information about the Digitalmars-d mailing list