В Scheme/Lisp я пытаюсь создать функцию, которая преобразует список в круговой список. Поэтому я считаю, что мне нужно построить бесконечный поток, в котором конец списка указывает на начало списка.
Вот мой код:
(define (rotate-list l1 l1copy)
(if (null? (force (cdr l1)))
(cons (car l1) (delay l1copy)))
(cons (car l1) (delay (rotate-list (force (cdr l1)) l1copy))))
Вся помощь приветствуется.