On Saturday, 28 July 2012 at 10:58:45 UTC, bearophile wrote:
Philip Daniels:
cannot implicitly convert expression (_param_1) of type
WordDatabase.WordTable to int
That error tells you to not use an int as first value for the
reduce. Maybe this is enough to solve your problem.
Bye,
bearophile
Well...sort of, but I am not sure why. I was able to get to the
right syntax by first doing it in parts, using map! and reduce!
on separate lines, which then gave me a pointer to the original
problem. It seems to be something to do with whether the array is
static or dynamic. If the array is static, which mine was, then
this form will work - note the extra [] on _word_tables:
auto total = reduce!"a + b.size()"(0L, _word_tables[]);
But if the array is dynamic then both of these forms work
auto total = reduce!"a + b.size()"(0L, _word_tables);
auto total = reduce!"a + b.size()"(0L, _word_tables[]);
That seems counter-intuitive to me at the moment, coming brand
new to the language. I know that the [] meaans "take a slice of
the array" but I don't see why that should be considered
different, since it is the entire array.