On 2021-05-27 15:00, sighoya wrote:
On Thursday, 27 May 2021 at 12:58:28 UTC, Christian Köstlin wrote:

That looks nice, but unfortunately my data for servers and users in the real world is not static but comes from a config file.

Okay, but then parametrizing the static lambda with runtime parameters should work. The important fact is that the closure needs to be static.
Ah thanks, now I understand.
So what I came up with now is a combination of the things mentioned:

```D
import std;

string doSomething(string[] servers, string user) {
    return user ~ servers[0];
}
struct UserWithServers {
    string user;
    string[] servers;
}
void main(string[] args) {
    auto servers = args;
    auto users = ["u1", "u2", "u3"];
auto usersWithServers = users.map!(user => UserWithServers(user, servers)).array;

static fn = function(UserWithServers user) => user.servers.doSomething(user.user);
    writeln(taskPool.amap!(fn)(usersWithServers));
}
```

Making also the example a little bit more "realistic" by using dynamic data for servers.

I would like to use auto fn, but somehow saying that its a function is not enough for dmd. From my understanding a function would never need a context?!?

Thanks a lot!
Christian

P.S.: I still do not get how to post formatted snippets with thunderbird to the newsgroup/forum :/

Reply via email to