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 - это явная гадость, поскольку эта конструкция
- классический итеративный цикл. А "по-функциональному" итеративные циклы
следует изображать в виде хвостовой рекурсии. Во всяком случае, это так,
если считать "функциональное программирование" некоей разновидностью
религии. Перекрестился не так, "как положено" - отрубить руку! 😬

С.А. Романенко

Ответить