statistics.racket: import
This commit is contained in:
4
statistics.racket/shell.nix
Normal file
4
statistics.racket/shell.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
{ pkgs ? import <nixpkgs> {} }:
|
||||
pkgs.mkShell {
|
||||
packages = [ pkgs.racket ];
|
||||
}
|
||||
15
statistics.racket/statistics.rkt
Normal file
15
statistics.racket/statistics.rkt
Normal file
@@ -0,0 +1,15 @@
|
||||
#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))))
|
||||
Reference in New Issue
Block a user