ネストされたリストのリストから最大値を取得する関数を作成しました。関数の一般的な形式は右下にあります。フラットリストとネストされたリストで機能しますが、兄弟のネストされたリストがあると失敗するようです。
これが私のコードです:
(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))))
論理的にどこが間違っているのかわからないので、助けていただければ幸いです。