Превратить список вида:
(1 (2 (3 4) 5) )
в вид:
(1 2 3 4 5)
Код:
(define (iter-append lst1 lst2)
(if (= (length lst2) 0)
lst1
(if (list? (car lst2))
(iter-append
(iter-append lst1 (car lst2))
(cdr lst2))
(iter-append
(append lst1 (list (car lst2)))
(cdr lst2)))))
Вызов:
(iter-append '() '(1 (2 (3 4) 5)))
Получаем:
(1 2 3 4 5)
|