On Monday, 15 June 2015 at 15:10:24 UTC, jmh530 wrote:
So I suppose I have two questions: 1) am I screwing up the cast, or is there no way to convert the MapResult to float[]

Don't cast it, just slap a .array on the end after importing std.range. Like so:

import std.algorithm;
import std.range; // add this line somewhere
float[] exp2(float[] x) {
        auto y = x.map!(a => exp(a));
        return y.array; // this line changed to make the array
}


The reason is that map returns a lazy generator instead of an array directly. It only evaluates on demand.

To get it to evaluate and save into an array, the .array function is called.

Tip though: don't call .array if you don't have to, chaining calls to map and such, even foreach(item; some_map_result) can be done without actually building the array and can give more efficiency.

Reply via email to