On Sunday, 11 December 2022 at 03:13:17 UTC, zjh wrote:
On Saturday, 10 December 2022 at 19:49:23 UTC, Salih Dincer wrote:

SDB@79


Can the `range` be partially traversed? That is, suppose we only access the `[3,5)` elements?

Certainly, there are many ways to do this. For example:

```d
  //...
  myList1.skipRange(3).rangePrint; /*
    1: Sivrihisar
    2: Shemseddin
    3: Nasruddin
    4: Nusrat
  */
  myNames[3..5].rangePrint; /*
    1: Sivrihisar
    2: Shemseddin
  */
}

auto skipRange(R)(R range, size_t value)
{
  size_t loop = value;
  while(!range.empty && loop--)
  {
    range.popFront();
  }
  return range;
}

void rangePrint(R)(R range)
{
  import std.stdio;
  size_t i = 1;
  foreach(item; range)
  {
    writeln(i++, ": ", item);
  }
  writeln;
}
```

SDB@79

Reply via email to