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.

Reply via email to