Delegate
Fabian Claßen
admin at fabs-world.de
Tue Dec 2 12:12:09 PST 2008
Jarrett Billingsley schrieb:
> 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.
I am learning D. But ...
I worked with other programming languages before and so I learn D with a
book for experienced programmers. My learning concept is like:
reading ... memorizing ... coding
So there was a very similar code in the book and I tried to write this
code by heart.
That's only for your information why I've writen the code like this.
The function gets a list of lazy arguments and summarizes the arguments.
Greetings Fabian Claßen
PS: Sorry I believe my english is bad - I am German :D lol
-------------- next part --------------
A non-text attachment was scrubbed...
Name: admin.vcf
Type: text/x-vcard
Size: 190 bytes
Desc: not available
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20081202/fd6dd35b/attachment.vcf>
More information about the Digitalmars-d
mailing list