В объекте coll хранится различное количество списков. Затем серия ударов предоставляется генератору случайных целых чисел. С каждым ударом сгенерированное целое число будет определять, какой список выйдет из coll . Очевидно, что это число должно быть от 1 до переменной длины coll . Это означает, что генератор RND должен учитывать любую измененную длину coll , прежде чем генерировать целое число. Итак, я думаю, у нас есть схема, подобная следующей:
- A loadbang -ed сообщение ‘ длина ’ должно ввести объект coll , чтобы он вывел свою длину.
- Этот номер длины должен попасть в правый вход объекта ‘ между ’ (RND gen.), Чтобы установить его максимум.
- A bang в левом входе объекта ‘ между ’ генерирует случайное целое число.
- Целое число вернется в coll и выведет соответствующий сохраненный список.
- Выходной список будет отправлен в итерационный механизм, который будет считывать и выводить его атомы один за другим.
- Когда выводится последний атом текущего списка, новый объект bang будет отправлен объекту * между , так что будет выбран новый список, и процесс будет повторить (этапы 3 - 6).
Проблема описанного выше процесса заключается в том, что он сталкивается с функциональностью объекта coll : coll выводит как его длину, так и любые сохраненные данные из одной и той же розетки (почему, Интересно?), Но в процессах, подобных описанным выше, длина coll должна быть выведена только один раз (в начале сеанса), и она должна передавать только ' между 'объект (он никогда не должен достигать механизма итерации, так как он не имеет значения). Поэтому маршруты длины coll и его данные должны быть разными, хотя все они являются целыми числами и все они выходят из одного выхода.
Есть идеи, пожалуйста?