Степенныe ряды представленные в виде бесконечных потоков
В разделе 2.5.3 мы увидели, как реализовать систему арифметики многочленов, используя представление многочленов в виде списка термов. Подобным же образом можно работать со степенными рядами (power series), например
 
представленными в виде бесконечных потоков. Будем представлять последовательность 
a₀ + a₁x + a₂x² + a₃x³ + ···
 как поток, элементами которого являются коэффициенты 
a₀, a₁, a₂, a₃, ...
.
а. Интеграл последовательности 
a₀ + a₁x + a₂x² + a₃x³ + ···
 есть последовательность
 
где 
c
 — произвольная константа. Определите процедуру 
integrate-series
, которая на входе принимает поток 
a₀, a₁, a₂, ...
, представляющую степенной ряд, и возвращает поток 
a₀, (1/2)a₁, (1/3)a₂, ...
 коэффициентов при неконстантных членах интеграла последовательности. (Поскольку в результате отсутствует постоянный член, он не представляет собой степенной ряд; при использовании 
integrate-series
 мы через 
cons
 будем присоединять к началу соответствующую константу.)
б. Функция 
x → eˣ
 равна своей собственной производной. Отсюда следует, что 
eˣ
 и интеграл 
eˣ
 суть одна и та же последовательность, с точностью до постоянного члена, который равен 
e⁰ = 1
. Соответственно, можно породить последовательность для 
eˣ
 через
(define exp-series
  (cons-stream 1 (integrate-series exp-series)))
Покажите, как породить последовательности для синуса и косинуса, опираясь на то, что производная синуса равна косинусу, а производная косинуса равна минус синусу:
(define cosine-series
  (cons-stream 1 <??>))
(define sine-series
  (cons-stream 0 <??>))
Комментарии отсутствуют.