Thread overview
save() feature for iota
Nov 03, 2022
Salih Dincer
Nov 03, 2022
Paul Backus
Nov 03, 2022
Ali Çehreli
Nov 04, 2022
Salih Dincer
Nov 04, 2022
Imperatorn
November 03, 2022

Hi All,

Isn't there a save feature for iota()?

import std.stdio;
import std.range;

void main()
{
  foreach(num; iota!char('a', 'f').chunks(3)/*
              "onetwosixfour".chunks(3)//*/
  ) {
		//auto n = num.save();
		num.writeln(": ", num.walkLength);
  }
} /* Prints:
: 3
: 2
*/

So is there a way to find out the length of an iota() range without consuming it?

SDB@79

November 03, 2022

On Thursday, 3 November 2022 at 06:26:22 UTC, Salih Dincer wrote:

>

Hi All,

Isn't there a save feature for iota()?

Looking at the source, it seems that only the numeric overloads of iota implement save. I think this is probably just an oversight, though, since I can't see any reason why save wouldn't work just as well for the generic version.

I've submitted an enhancement request for this to the D bug tracker: https://issues.dlang.org/show_bug.cgi?id=23453

November 03, 2022
On 11/3/22 04:58, Paul Backus wrote:

> https://issues.dlang.org/show_bug.cgi?id=23453

Even though iterating over UTF value ranges don't make sense in general, they would work for some values including the ASCII range.

Ali

November 04, 2022
On Thursday, 3 November 2022 at 11:58:20 UTC, Paul Backus wrote:
> On Thursday, 3 November 2022 at 06:26:22 UTC, Salih Dincer Looking at the source, it seems that only the numeric overloads of `iota` implement `save`. I think this is probably just an oversight, though, since I can't see any reason why `save` wouldn't work just as well for the generic version.

The problem I'm having here seems to be chunk related. But using a template like iota!char for some reason does not affect the output result. I showed these situations in the example in the Turkish forum:

https://forum.dlang.org/thread/jbklbbozmisahohouzsn@forum.dlang.org

SDB@79
November 04, 2022
On Friday, 4 November 2022 at 08:48:36 UTC, Salih Dincer wrote:
> On Thursday, 3 November 2022 at 11:58:20 UTC, Paul Backus wrote:
>> On Thursday, 3 November 2022 at 06:26:22 UTC, Salih Dincer Looking at the source, it seems that only the numeric overloads of `iota` implement `save`. I think this is probably just an oversight, though, since I can't see any reason why `save` wouldn't work just as well for the generic version.
>
> The problem I'm having here seems to be chunk related. But using a template like iota!char for some reason does not affect the output result. I showed these situations in the example in the Turkish forum:
>
> https://forum.dlang.org/thread/jbklbbozmisahohouzsn@forum.dlang.org
>
> SDB@79

See Pauls response