On Fri, 25 Feb 2011 14:34:35 -0500, Andrej Mitrovic <[email protected]> wrote:

Can this be simplified?:

byte[] arr = to!(byte[])(array(iota(byte.min, byte.max+1)));

The +1 turns byte.max into an int that can store 128. So when I call
array on an iota, I'll get back an int[] of [-128, ..., 127]. And I
have to convert that to a byte[].

This is a good puzzle. You may have to do something with map and casting, but I don't see how it can be done with iota without a cast.

The right thing to do would be this:

for(byte i = -127; i < byte.max + 1; i++)
  arr ~= i;

which does everything as a byte, but does the comparisons as ints.

But I don't know how to make iota do this.

-Steve

Reply via email to