У меня проблемы с этой проблемой, потому что я не знаю, как составить список с рекурсивностью, используя генераторы. Идея состоит в том, чтобы создать функцию, которая получает генератор, который генерирует n чисел и возвращает список с этими числами.
Это мой код
;GENERATOR THAT GENERATES "INFINITE NUMBERS OF FIBONACCI"
(define (fib)
(let ((a 0) (b 1))
(lambda ()
(let ((ret a))
(set! a b)
(set! b (+ ret b))
ret))))
;RETURNS A GENERATOR THAT GENERATES NUMBERS OF FIBONACCI UP TO N
(define (taking n g)
(let ((i 1))
(lambda ()
(if (> i n)
#f
(begin
(set! i (+ i 1))
(g))))))