计算机程序的构造和解释 练习题2.27
递归的思路是,如果不是表,按原来的方法进行倒叙,如果是表,则将表倒序后再加入到原来的倒序结果中。
#lang racket
(define (reverse items)(define (iter list1 list2)(cond ((null? list2) list1)((not (pair? (car list2))) (iter (cons (car list2) list1) (cdr list2) ))(else (iter (cons (iter null (car list2)) list1) (cdr list2)))))(iter null items))(define a '((1 2 3) (4 5 6)))
(define b '((1 2 (1 2 (1 2 3))) ((1 2 3) (1 2 3) 6)))
(reverse a)
(reverse b)
运行结果
'((6 5 4) (3 2 1))
'((6 (3 2 1) (3 2 1)) (((3 2 1) 2 1) 2 1))
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
