На нашем экзамене мы должны были написать процедуру, которая отображает первые 20 элементов последовательности, и процедуру, которая принимает 2 последовательности и возвращает одну в форме процедуры.Я написал процедуру для display-sequence для первых 20 элементов, но я не могу понять, как сделать вторую процедуру, которая чередует две последовательности в одну.Буду признателен за любые идеи, как это можно сделать.
(define (display-sequence seq)
(letrec ((iter (lambda (seq i j)
(if (= i j)
(display "...")
(begin (display (seq i))
(display ", ")
(iter seq (+ 1 i) j))))))
(iter seq 0 20)))
(define (seq-interleave seq1 seq2)
(lambda (n)
(if (even? n)
(seq1 n)
(seq2 n))))
Это должно быть выведено при вызове этих 2 процедур
(display-sequence (seq-interleave sqr (lambda (n) 5)))
0, 5, 1, 5, 4, 5, 9, 5, 16, 5, 25, 5, 36, 5, 49, 5, 64, 5, 81, 5, ...