15 lines
516 B
Racket
15 lines
516 B
Racket
#lang typed/racket
|
|
|
|
(: sum (-> (Listof Number) Number))
|
|
(define (sum list) (foldr + 0 list))
|
|
|
|
(: mean (-> (Listof Number) Number))
|
|
(define (mean sample)
|
|
(/ (sum sample) (length sample)))
|
|
|
|
(: standard-deviation (-> (Listof Number) Number))
|
|
(define (standard-deviation sample)
|
|
(let* ((degrees-of-freedom (- (length sample) 1))
|
|
(sample-mean (mean sample))
|
|
(sum-of-squared-errors (sum (map (lambda (xi) (expt (- xi sample-mean) 2)) sample))))
|
|
(sqrt (/ sum-of-squared-errors degrees-of-freedom)))) |