Я работал над следующей функцией flatten, и пока она работает только для списков.Мне было интересно, если кто-нибудь может дать мне некоторое представление о том, как заставить его работать с парами?Например (flatten '(a .a)) вернет (aa).Спасибо.
(define (flatten list)
(cond ((null? list) null)
((list? (car list)) (append (flatten (car list)) (flatten (cdr list))))
(else
(cons (car list) (flatten (cdr list))))))