Различное количество списков хранится в объекте coll. Затем генератору случайных целых чисел передается серия ударов. С каждым ударом сгенерированное целое число будет решать, какой список будет исключен из coll. Очевидно, это число должно быть между 1 и переменной длиной coll. Это означает, что генератор RND должен учитывать любое изменение длины coll перед созданием целого числа. Итак, я думаю, у нас есть схема, подобная следующей:
- loadbang-ed message ‘length’ должен войти в объект coll, чтобы он вывел свою длину.
- Этот номер длины должен попасть в правый вход объекта «между» (поколение RND), чтобы установить его максимум.
- челка на левом входе объекта «между» сгенерирует случайное целое число.
- Целое число вернется в coll и выведет соответствующий сохраненный список.
- Выходной список будет отправлен итерационному механизму, который будет считывать и выводить его атомы один за другим.
- Когда будет выведен последний атом текущего списка, объекту 'между будет отправлен новый bang, так что будет выбран новый список, и процесс будет запущен. повторный (этапы №3 – 6).
Проблема с описанным выше процессом заключается в том, что он натыкается на функциональность объекта coll: объект coll выводит и свою длину, и любые сохраненные данные из одного и того же выхода (почему, я интересно?), но в процессах, подобных приведенному выше, длина coll должна быть выведена только один раз (в начале сеанса) и должна передаваться только в 'между >' объект (он никогда не должен достигать механизма итерации, так как он не имеет значения). Следовательно, маршруты длины колла и его данных должны быть разными, хотя все они являются целыми числами и все они выходят из одного выхода.
Любые идеи, пожалуйста?