【发布时间】:2017-11-02 00:46:00
【问题描述】:
我正在尝试创建一个程序来告诉我列表的深度。 这是我目前所拥有的:
(define (depth lst)
(let recurse ((lst lst) (n 1))
(cond ((null? lst) '())
((not (pair? (car lst)))
(cons n (recurse (cdr lst) n)))
(else
(append (recurse (car lst) (+ 1 n))
(recurse (cdr lst) n))))))
这很好用,但它以包含结果而不是数字的列表形式返回深度。例如,当我运行(depth '(((a)))) 时,它返回(3) 而不仅仅是3。
【问题讨论】: