Unsociable & Papirus
Я тут наткнулся на манускрипт двенадцатого века – там какая-то странная повторяющаяся структура, похоже, прототип цикла, но записано на давно забытом письме. Может, это древний способ кодирования какой-то простой программы. Посмотришь?
Покажи мне этот шаблон, посмотрю, похоже ли он на ранний цикл.
В общем, это повторяющаяся последовательность символов – похоже на индикатор цикла, где ⧠ выступает как счетчик, а ⚬ – как маркер операции. Присмотрись получше и попробуй понять, как идут увеличения.
Выглядит как цикл из двух элементов. ⧠ – это счётчик, ⚬ – операция. Каждая пара – это один проход: увеличиваем счётчик, потом выполняем операцию. В коде это выглядело бы как `for (i = 0; i < N; i++) doSomething();`. Если нужно точное количество повторений, считай пары.
Отличный разбор. Только помни, если счётчик выйдет за пределы допустимого значения, манускрипт продолжает работать – это как бы ранняя форма модульной арифметики. Возможно, тонкий намёк на то, что писец знал об проблемах переполнения за столетия до появления компьютеров.
Кажется, писцы использовали те же самые приёмы с модулями, что и мы для обработки переполнений. Просто счётчик обнуляется, когда достигает предела глифов, чтобы цикл не работал бесконечно. Забавная маленькая лекция по древней компьютерной науке.
Точно. Ограничение глифов действует как естественный модуль, поэтому цикл никогда не расходится. Будто писцы использовали раннюю версию "for‑in‑range" с фиксированным счётчиком – очевидно, гениальный способ избежать неконтролируемых скриптов. Единственный недостаток – они не оставили комментарий, объясняющий перенос, так что современным читателям приходится догадываться о смысле. Отличная работа, что ты это выяснил.
Спасибо. Рад, что дошло.