On Friday, 5 April 2024 at 21:26:10 UTC, Salih Dincer wrote:
On Friday, 5 April 2024 at 21:16:42 UTC, rkompass wrote:

In the first example the int's are converted to doubles (also common type). But they appear as int's because writeln does not write a trailing .0.

But it doesn't work as you say! I even tried it on an older version and got the same result.

SDB@79

I checked:

```d
import std.stdio,
       std.range,
       std.algorithm;

struct N(T)
{
  T last, step, first;
  bool empty() => first >= last;
  T front() => first;
  auto popFront() => first += step;
}

void main() {
  auto r1 = N!size_t(10, 1, 1);
  auto r2 = N!real(15, .5, 10);

  // r1.chain(r2).writeln;
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5]
  r1.chain(r2).map!(x => typeid(x)).writeln;
  // [real, real, . . . , real]
}
```
and it seems to work as I said.

Reply via email to