2018-02-12 2:37 GMT+03:00 Александр Коновалов <a.v.konovalo...@mail.ru>:
Подозреваю, что конструкция $iter была добавлена в язык именно ради таких > прогонок. > Ну да. А другой мотив был - сделать выразимым на Рефале Плюс то, что было выразимо на уровне виртуального кода (= языке сборки). Вот, во втором издании книги - Р.Гурин, С.Романенко. Язык программирования Рефал Плюс. Курс лекций. Учебное пособие для студентов университета города Переславля. - Переславль-Залесский: "Университет города Переславля" им.А.К.Айламазяна, 2006. - 222 с. PDF <http://pat.keldysh.ru/~roman/doc/2006-Gurin_Romanenko--Yazyk_programmirovaniya_Refal_Plyus--ru.pdf> есть глава, в которой подробно описан виртуальный код, и как в него Рефал Плюс компилируется. Но, ежели смотреть на вопрос с точки зрения "функционального программирования", то $iter - это явная гадость, поскольку эта конструкция - классический итеративный цикл. А "по-функциональному" итеративные циклы следует изображать в виде хвостовой рекурсии. Во всяком случае, это так, если считать "функциональное программирование" некоей разновидностью религии. Перекрестился не так, "как положено" - отрубить руку! 😬 С.А. Романенко