statistics.racket: import

This commit is contained in:
2026-03-14 07:28:30 +01:00
parent ca469fff65
commit 0d64c4dfb3
3 changed files with 20 additions and 0 deletions

1
.gitignore vendored
View File

@@ -15,3 +15,4 @@ dist/
dist-newstyle/
*.pdf
*.ps
*~

View File

@@ -0,0 +1,4 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
packages = [ pkgs.racket ];
}

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