我正在尝试创建一个方案递归函数deep_count,即使它嵌套在子列表中,它也会计算数字的总和。
(define deep_count
(lambda (xs)
(cond
((empty? xs) 0)
((list? (first xs)) (+
(deep_count (first xs))
(deep_count (rest xs))))
(else (+ 1 (deep_count (rest xs)))))))
(deep_count '(1 2 3 (4 5 6) ((7 8 9) 10 (11 (12 13)))))
但我现在是13岁,而不是91岁。这里怎么了?
编辑:没关系,我知道为什么。
结尾有一个小错误。更改此项:
(+ 1 (deep_count (rest xs)))
为此,你已经做好了准备:
(+ (first xs) (deep_count (rest xs)))