#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))))