【发布时间】:2011-07-03 12:47:31
【问题描述】:
我对@987654321@ 的实现如下所示:
(define flatten
(lambda (lst)
(if (null? lst)
lst
(append
(rtn-lst (car lst))
(flatten (cdr lst))))))
(define rtn-lst
(lambda (lst)
(cond
((null? lst)
empty)
((atom? lst)
(list lst))
(else
(flatten lst)))))
虽然标准实现是:
(define (flatten lst)
(cond
((null? list)
empty)
((list? (car lst))
(append (flatten (car lst)) (flatten (cdr lst))))
(else
(cons (car lst) (flatten (cdr lst))))))
除了明显的冗长,我的代码还有什么问题?
【问题讨论】:
标签: list functional-programming scheme flatten