Generalize naturals to integers to minimize annotations on mutated variables.
original commit: b18f2353cab9712c827dda692649bcd16bc3e79e
This commit is contained in:
parent
ece22fd4fd
commit
79f4bcfbdb
|
@ -84,11 +84,11 @@
|
|||
[table
|
||||
`((,a-hits ,b-hits)
|
||||
(,a-misses ,b-misses))]
|
||||
[expected (lambda: ([i : Natural] [j : Natural])
|
||||
[expected (lambda: ([i : Integer] [j : Integer])
|
||||
(/ (* (row-total i table) (col-total j table)) total-subjects))])
|
||||
(exact->inexact
|
||||
(table-sum
|
||||
(lambda: ([i : Natural] [j : Natural])
|
||||
(lambda: ([i : Integer] [j : Integer])
|
||||
(/ (sqr (- (expected i j) (table-ref i j table))) (expected i j)))
|
||||
table)))))
|
||||
|
||||
|
@ -473,7 +473,7 @@
|
|||
(show result ))))
|
||||
|
||||
;; applies only to the combined metric [or more generally to listof-answer results]
|
||||
(pdefine: (a b c) (total [experiment-number : Natural] [result : (Result (Listof number) b c)]) : (Listof number)
|
||||
(pdefine: (a b c) (total [experiment-number : Integer] [result : (Result (Listof number) b c)]) : (Listof number)
|
||||
(define: (total/s [s : Table]) : number (apply + (list-ref (pivot s) experiment-number)))
|
||||
(list (total/s (result-seqA result)) (total/s (result-seqB result))))
|
||||
|
||||
|
@ -491,7 +491,7 @@
|
|||
[(null? l) '()]
|
||||
[else
|
||||
(let ([n (length (car l))])
|
||||
(build-list n (lambda: ([i : Natural]) (map (lambda: ([j : (Listof X)]) (list-ref j i)) l))))]))
|
||||
(build-list n (lambda: ([i : Integer]) (map (lambda: ([j : (Listof X)]) (list-ref j i)) l))))]))
|
||||
|
||||
(define: (sqr [x : Real]) : Real (* x x))
|
||||
(define: (variance [xs : (Listof Real)]): Real
|
||||
|
@ -499,13 +499,13 @@
|
|||
(/ (apply + (map (lambda: ([x : number]) (sqr (- x avg))) xs))
|
||||
(sub1 (length xs)))))
|
||||
|
||||
(define: (table-ref [i : Natural] [j : Natural] [table : Table]): number
|
||||
(define: (table-ref [i : Integer] [j : Integer] [table : Table]): number
|
||||
(list-ref (list-ref table i) j))
|
||||
(define: (row-total [i : Natural] [table : Table]) : number
|
||||
(define: (row-total [i : Integer] [table : Table]) : number
|
||||
(apply + (list-ref table i)))
|
||||
(define: (col-total [j : Natural] [table : Table]) : number
|
||||
(define: (col-total [j : Integer] [table : Table]) : number
|
||||
(apply + (map (lambda: ([x : (Listof number)]) (list-ref x j)) table)))
|
||||
(define: (table-sum [f : (Natural Natural -> Real)] [table : Table]) : number
|
||||
(define: (table-sum [f : (Integer Integer -> Real)] [table : Table]) : number
|
||||
(let ([rows (length table)]
|
||||
[cols (length (car table))])
|
||||
(let loop ([i 0] [j 0] [#{sum : Real} 0])
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
[table
|
||||
`((,a-hits ,b-hits)
|
||||
(,a-misses ,b-misses))]
|
||||
[expected (λ: ([i : Natural] [j : Natural])
|
||||
[expected (λ: ([i : Integer] [j : Integer])
|
||||
(/ (* (row-total i table) (col-total j table)) total-subjects))])
|
||||
(exact->inexact
|
||||
(table-sum
|
||||
|
@ -425,7 +425,7 @@
|
|||
(show result))))
|
||||
|
||||
;; applies only to the combined metric [or more generally to listof-answer results]
|
||||
(: total (All (b c) (Natural (result (Listof Number) b c) -> (Listof Number))))
|
||||
(: total (All (b c) (Integer (result (Listof Number) b c) -> (Listof Number))))
|
||||
(define (total experiment-number result)
|
||||
(: total/s (Table -> Number))
|
||||
(define (total/s s) (apply + (list-ref (pivot s) experiment-number)))
|
||||
|
@ -447,7 +447,7 @@
|
|||
[(null? l) '()]
|
||||
[else
|
||||
(let ([n (length (car l))])
|
||||
(build-list n (λ: ([i : Natural]) (map (λ: ([j : (Listof X)]) (list-ref j i)) l))))]))
|
||||
(build-list n (λ: ([i : Integer]) (map (λ: ([j : (Listof X)]) (list-ref j i)) l))))]))
|
||||
|
||||
(: variance ((Listof Number) -> Number))
|
||||
(define (variance xs)
|
||||
|
@ -455,16 +455,16 @@
|
|||
(/ (apply + (map (λ: ([x : Number]) (sqr (- x avg))) xs))
|
||||
(sub1 (length xs)))))
|
||||
|
||||
(: table-ref (Natural Natural Table -> Number))
|
||||
(: table-ref (Integer Integer Table -> Number))
|
||||
(define (table-ref i j table)
|
||||
(list-ref (list-ref table i) j))
|
||||
(: row-total (Natural Table -> Number))
|
||||
(: row-total (Integer Table -> Number))
|
||||
(define (row-total i table)
|
||||
(apply + (list-ref table i)))
|
||||
(: col-total (Natural Table -> Number))
|
||||
(: col-total (Integer Table -> Number))
|
||||
(define (col-total j table)
|
||||
(apply + (map (λ: ([x : (Listof Number)]) (list-ref x j)) table)))
|
||||
(: table-sum ((Natural Natural -> Number) Table -> Number))
|
||||
(: table-sum ((Integer Integer -> Number) Table -> Number))
|
||||
(define (table-sum f table)
|
||||
(let ([rows (length table)]
|
||||
[cols (length (car table))])
|
||||
|
|
|
@ -154,10 +154,10 @@
|
|||
[tc-e (void) -Void]
|
||||
[tc-e (void 3 4) -Void]
|
||||
[tc-e (void #t #f '(1 2 3)) -Void]
|
||||
[tc-e/t #(3 4 5) (make-HeterogenousVector (list -Nat -Nat -Nat))]
|
||||
[tc-e/t #(3 4 5) (make-HeterogenousVector (list -Integer -Integer -Integer))]
|
||||
[tc-e/t '(2 3 4) (-lst* -PositiveFixnum -PositiveFixnum -PositiveFixnum)]
|
||||
[tc-e/t '(2 3 #t) (-lst* -PositiveFixnum -PositiveFixnum (-val #t))]
|
||||
[tc-e/t #(2 3 #t) (make-HeterogenousVector (list -Nat -Nat (-val #t)))]
|
||||
[tc-e/t #(2 3 #t) (make-HeterogenousVector (list -Integer -Integer (-val #t)))]
|
||||
[tc-e/t '(#t #f) (-lst* (-val #t) (-val #f))]
|
||||
[tc-e/t (plambda: (a) ([l : (Listof a)]) (car l))
|
||||
(make-Poly '(a) (t:-> (make-Listof (-v a)) (-v a)))]
|
||||
|
|
|
@ -137,7 +137,7 @@
|
|||
[unsafe-vector-set! (-poly (a) (-> (-vec a) index-type a -Void))]
|
||||
[unsafe-vector*-set! (-poly (a) (-> (-vec a) index-type a -Void))]
|
||||
[vector-copy! (-poly (a) ((-vec a) index-type (-vec a) [index-type index-type] . ->opt . -Void))]
|
||||
[make-vector (-poly (a) (cl-> [(index-type) (-vec (Un -Nat a))]
|
||||
[make-vector (-poly (a) (cl-> [(index-type) (-vec (Un -Integer a))]
|
||||
[(index-type a) (-vec a)]))]
|
||||
|
||||
[bytes-ref (-> -Bytes index-type -NonnegativeFixnum)]
|
||||
|
|
Loading…
Reference in New Issue
Block a user