尾递归实现倒序排序:
(define (foo x)
(let loop((n x) (l '()))
(if (null? (cdr n)) (append (list (car n)) l)
(loop (cdr n) (append (list (car n))l)))))
如:(foo '(1 2 3 4 5)) => (5 4 3 2 1)
等价于它的一般性递归排序:
(define (f x)
(if (null? (cdr x))
(list (car x))
(append (f (cdr x)) (list (car x)))))
如:(f '(1 2 3 4 5)) => (5 4 3 2 1)
2010年5月29日星期六
订阅:
博文评论 (Atom)
没有评论:
发表评论