ranges.chunks and map! does not work
vit
vit at vit.vit
Thu Jul 5 12:00:03 UTC 2018
On Thursday, 5 July 2018 at 09:47:32 UTC, Andre Pany wrote:
> Hi,
>
> the purpose of this code is to generate CSV based on 3 double
> arrays.
> I wonder why map cannot directly use the result of the chunks
> function.
>
> import std.experimental.all;
>
> void main()
> {
> double[] timestamps = [1.1];
> double[] temperatures = [2.2];
> double[] pressures = [3.3];
>
> string content = roundRobin(timestamps, temperatures,
> pressures)
> .chunks(3)
> //.map!(c => c.array)
> .map!(c => "%.10g,%.10g,%.10g".format(c[0],c[1],c[2]))
> .join("\n");
>
> writeln(content);
> }
>
> The exact error message is (this line is 3 times repeated):
> app1.d(12): Error: no [] operator overload for type
> Take!(Result)
> app1.d(12): Error: no [] operator overload for type
> Take!(Result)
> app1.d(12): Error: no [] operator overload for type
> Take!(Result)
> C:\SAPDevelop\D\dmd2\windows\bin\..\..\src\phobos\std\algorithm\iteration.d(499): instantiated from here: MapResult!(__lambda1, Chunks!(Result))
> app1.d(12): instantiated from here: map!(Chunks!(Result))
>
> Is it correct that I need to call ".map!(c => c.array)"?
>
> Kind regards
> André
roundRobin doesn't return RandomAccessRange => chunks doesn't
return range of RandomAccessRange => Error: no [] operator
overload
try this:
string content = roundRobin(timestamps, temperatures,
pressures)
.array
.chunks(3)
//.map!(c => c.array)
.map!(c => "%.10g,%.10g,%.10g".format(c[0],c[1],c[2]))
.join("\n");
More information about the Digitalmars-d-learn
mailing list