중첩 목록의 목록에서 최대 값을 얻는 함수를 작성했습니다. 함수의 일반적인 형식이 오른쪽 아래에 있습니다. 플랫 목록과 중첩 목록에서 작동하지만 형제 중첩 목록이있는 경우 실패합니다. 여기 하위 목록의 최대 스키마
(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))))
, 논리적으로, 도움이 좋을 것이다 ! 나는 더 재귀 방법으로 그것을 다시 썼다 있도록
이 문제는 디자인 레시피 (http://www.htdp.org/ 참조)를 적용하는 데 절대적으로 도움이됩니다. 구체적으로 : 입력에 대한 데이터 정의는 무엇입니까? –