在 Rebol3 中用自己的索引填充数组的有效方法

Efficient way to fill an array with its own indices in Rebol3

用自己的索引填充数组(给定的可能是动态大小)的简洁的一行代码是什么?

我正在尝试这个:

data: copy {}
repeat tilenum totaltiles [ append data rejoin [tilenum " "] ]

...然后希望将其转换为数组,但我认为必须有更 Rebolish 的方式来做这样的事情。

我的最终目标实际上是随机化数组内容的顺序,我认为这将是 random myarrayhere 的输出,但也许甚至有一种方法可以一次性完成所有这些?

如果你想要随机数组(块!)为什么不首先从块而不是字符串开始?

>> random array/initial length: 10 does [-- length]
== [3 10 7 9 2 5 8 6 1 4]

这是向您展示更多 Rebol 技巧的另一个选项。 collectkeep 在此设置中非常酷。

random collect [ repeat tilenum 10 [ keep tilenum ] ]

我更新了我的第一个答案,按照@rebolek 的建议使用 repeat,因为我同意 for 语法不完美。

如果您想要真正的随机数并且不介意重复数字的风险,可以使用 loop 构造

更简洁的选项
collect [ loop 10 [ keep random 100 ] ]