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

Arrays 在Rebol3中用自己的索引填充数组的有效方法,arrays,random,rebol3,Arrays,Random,Rebol3,用自己的索引填充数组(可能具有给定的动态大小)的整洁的一行是什么 我试着这样做: data: copy {} repeat tilenum totaltiles [ append data rejoin [tilenum " "] ] …然后希望将其转换为数组,但我认为必须有一种更具创新性的方法来实现这一点 我的最终目标实际上是将数组内容的顺序随机化,我认为这将是random myarrayhere的输出,但也许有一种方法可以一次性完成所有这一切?如果你想要随机数组(块!),为什么不从块开始而

用自己的索引填充数组(可能具有给定的动态大小)的整洁的一行是什么

我试着这样做:

data: copy {}
repeat tilenum totaltiles [ append data rejoin [tilenum " "] ]
…然后希望将其转换为数组,但我认为必须有一种更具创新性的方法来实现这一点

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

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

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

这里有另一个选项向您展示更多的Rebol技巧
collect
keep
在这种设置下非常酷

random collect [ repeat tilenum 10 [ keep tilenum ] ]
我更新了我的第一个答案,使用@rebolek建议的
repeat
,因为我同意
for
语法不够完美

如果您想要真正的随机数,并且不介意重复数的风险,那么使用
循环
构造有一个更简洁的选项

collect [ loop 10 [ keep random 100 ] ]

COLLECT/KEEP是一个很好的技巧,你可以使用
repeat tilenum 10[…]
-我真的不喜欢:)Super,我喜欢这种语法,但是accept只作为第一个进入@rebolek。从一个块开始就是我想要的,只是我没有意识到你可以使用
does
作为
数组/初始值的参数,现在我明白了,这完全有道理。