История изменений
Исправление Siborgium, (текущая версия) :
Вычисление полиномов я просто переписал чуть покрасивее с помощью let*. iterate-while f c i
создает список '(i, f(i), f(f(i)), ...)
, пока условие c
не выполнится для очередного элемента. В качестве условий я подставляю условия из вашего списка, так получая аналог цикла. Затем я для каждого элемента полученного списка вычисляю соответствующий полином, получая список полиномов от соответствующих элементов. Можно было бы написать ленивую версию, чтобы генерировать список i
по мере необходимости, но это не имеет большого смысла, раз вы все равно будете хранить весь список полиномов.
Исходная версия Siborgium, :
Вычисление полиномов я просто переписал чуть покрасивее с помощью let*. iterate-while f c i
создает список '(i, f(i), f(f(i)), ...)
, пока условие c
не выполнится для очередного элемента. В качестве условий я подставляю условия из вашего списка, так получая аналог цикла. Затем я для каждого элемента полученного списка вычисляю соответствующий полином, получая список полиномов от соответствующих элементов. Можно было бы написать ленивую версию, чтобы генерировать список i
по мере необходимости, но это не так уж необходимо, раз вы все равно будете хранить весь список полиномов.