On Friday, 21 August 2015 at 20:09:22 UTC, Laeeth Isharc wrote:
I have four arrays of ints, each array representing a kind of
event associated with that int (they all map to the same
space). Each array might have the same number multiple times
and each array will be of different length.
So I would like to plot the int line on x axis and show number
of times that the number occurs for each array (4 bars for each
int).
It's easy to do with loops, but what's best
functional/algorithmic way, please? Brain tired today. I am
trying to use these opportunities to learn the algorithmic way
even if loop is more natural.
I could just make four new arrays of ints and use each instead
of a loop. Any better way?
Also, for bucketizing, any thoughts on best way to do using
phobos? (Cos probably I have too many ints and need to bracket
them to plot a histogram).
Sorry if this is unclear.
Laeeth.
loop-less approach, it consumes an InputRange in a recursive
function.
Assuming histogramData is a custom InputRange:
---
void upperLevel()
{
//histogramData = ...
proc(histogramData);
// continue once the range is consumed
}
void proc(ref histogramData)
{
//something with front
histogramData.popFront;
if (!histogramData.empty)
proc(histogramData);
}
---
I don't know if this approach can be used but this is an
alternative to loops.
Not necessarily the best because local variables in proc() can
lead to a stack overflow.