不同数量的列表存储在coll对象中。然后将一系列 bang 提供给随机整数生成器。随着每一次爆炸,生成的整数将决定哪个列表将从coll中删除。显然,这个数字必须在 1 和coll的不同长度之间。这意味着 RND 生成器必须在生成整数之前考虑到coll的任何更改长度。所以,我想我们有一个如下所示的电路:
- loadbang -ed消息“<strong>length”必须输入coll对象以使其输出其长度。
- 此长度数必须进入“<strong>between”(RND gen.)对象的右侧入口以设置其最大值。
- '<strong>between' 对象的左侧输入中的 bang 将生成一个随机整数。
- 整数将返回到coll并使其输出相应的存储列表。
- 输出列表将被发送到迭代机制,该迭代机制将逐个读取和输出其原子。
- 当当前列表的最后一个原子被输出时,一个新的bang将被发送到 '<strong>between' 对象,以便选择一个新的列表并重复该过程(阶段 #3 - 6)。
上述过程的问题在于它偶然发现了coll对象的功能:一个coll从同一个出口输出它的长度和任何存储的数据(为什么,我想知道?),但是在像上面这样的过程中,长度coll必须只输出一次(在会话开始时),并且它应该只提供 '<strong>between' 对象(它不应该到达迭代机制,因为它是不相关的)。因此coll的长度和它的数据的路径一定是不同的,尽管它们都是整数并且它们都是从同一个出口出来的。
请问有什么想法吗?