我编写了一个函数来从嵌套列表的列表中获取最大值,我在右边有函数的一般形式;它适用于平面列表和嵌套列表,但当有兄弟嵌套列表时似乎失败。
这是我的代码:
(define (multi-max array)
(cond
((null? array) 0)
((number? (car array))
(if (> (car array) (multi-max (cdr array)))
(car array)
(multi-max (cdr array))))
((pair? (car array))
(multi-max (car array)))
(else
(multi-max (cdr array)))))
这是一个失败的测试列表:(multi-max '(1 9 83 9 (332 (334) (2 3 4224))))
我不确定我哪里出错了,从逻辑上讲,一些帮助会很好!