Scheme에서 정수 목록의 표준 편차.Scheme Programming 표준 편차
쓰기이 문제를 해결하기위한 두 개의 식 :
- 먼저 표현 간의 차이의 제곱의 합을 계산>를 각각 수 평균 인구
- 둘째, 그 번호를 사용하여 표준 편차를 계산 . 지금까지
내 코드 :
(define (average lst)
(/ (apply + lst) (length lst)))
(define (std-dev lst)
(sqrt
(/
(innerFunction lst (average lst))
(length lst)
)
)
)
(define (innerFunction lst avg)
(if
(null? lst)
0
(+
(*
(- (car lst) avg)
(- (car lst) avg)
)
(innerFunction (cdr lst) average)
)
)
)
(오류가 이다 "숫자 필요하지만 가지고 #Closure").
저는 일주일 전에 Scheme을 시작 했으므로 익숙하지 않습니다. 코드에 어떤 문제가 있습니까? 어떻게 해결할 수 있습니까? 또한 mapping
과 같이 단순화 된 방법이 더 간단합니다. average
을 apply
으로 변경 했습니까?
"innerFunction"== "sum-devs-squared"또는 이와 비슷한 것. 간단한 경험 법칙 : * 기능을 의미있는 이름으로 지정하고, 짧은 약어 (의도가 명확한 한 글자까지)로 * 변수 이름을 지정하십시오. --- 네, 당신의'innerFunction'은'map'에 대한 호출로서 코딩 될 수 있습니다. –