Глубокий переворот списка
Измените свою процедуру
reverse
из упражнения
2.18
так, чтобы получилась процедура
deep-reverse
, которая принимает список в качестве аргумента и возвращает в качестве значения список, где порядок элементов обратный и подсписки также обращены. Например:
(define x (list (list 1 2) (list 3 4)))
x
((1 2) (3 4))
(reverse x)
((3 4) (1 2))
(deep-reverse x)
((4 3) (2 1))
#
Leenday
1 год назад
#
Leenday
1 год назад
Решение не со всеми случаями списков работает корректно. Например: (define a (list (list 1 (list 1 2)) (list 3 (list 3 4)) (list 5 6)))
Вернет: 1 ]=> (deep-reverse a) ;Value 16: ((6 5) ((3 4) 3) ((1 2) 1))
не так сложно как кажется