statistics.racket: import
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -15,3 +15,4 @@ dist/
|
|||||||
dist-newstyle/
|
dist-newstyle/
|
||||||
*.pdf
|
*.pdf
|
||||||
*.ps
|
*.ps
|
||||||
|
*~
|
||||||
|
|||||||
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