July 03, 2012
On Tue, Jul 3, 2012 at 8:58 PM, maarten van damme <maartenvd1994@gmail.com> wrote:
> I  have an array of structs and I've written a function that takes as argument a struct (and an array but this is besides the point) and returns a unique string.

It's not beside the point, I think it's the exact cause of your problem :)


> I wanted to use map to retrieve a string array of all unique strings
> from that array. I've used it this way:
> string [] added=map!("toName(a,parsedschema)")(mod.added);
>
> But I get a compilation error:
>
> bad unary function : toName(a,parsedschema) for type randomStruct.
>
> Is my usage of map wrong?
> what's the compiler trying to explain?

parsedschema is not known in std.functional nor std.algorithm, so the function template created by std.functional.unaryFun (used by map) is not recognized by map.

Use a closure to 'transport' parsedschema:

string [] added=map!(a => toName(a,parsedschema))(mod.added);


Philippe