COMP 105 type checker test results sorted by test

You can view the same data sorted by earnings.

A test case earns "failure francs" for each submitted solution that does not handle that test case correctly. Here is the algorithm for distributing failure francs:

The better your tests are at getting other people's solutions to fail, the more francs you earn. Each solution distributes the same number of francs, but the francs go only to tests that make it fail. A test that exposes a fault in a high-quality solution earns lots of francs!

To avoid revealing any private information, each student is identified by a number chosen at random. You should have received your number by email.

The table below shows the number of "failure francs" earned by each test case (a row) from each solution (a column). An empty entry means the solution handled the test case correctly. A dash means that the type checker and the test case came from the same student—and you can't earn francs by making your own code fail.

Test Earned Test 1234567891011121314151617181920
1 (test 1) 7.31 (type-lambda ('a) (type-lambda ('b) (lambda (('a a)) ((@ cons 'a) a (@ '() 'a))))) : (forall ('a) (forall ('b) (function ('a) (list 'a))))             4.2            1.8    1.3    
1 (test 2) 15.63 (type-lambda ('a 'b) (lambda (('a a)) ((@ either 'a 'b bool) ((@ left 'a 'b) a) (lambda (('a x)) #t) (lambda (('b y)) #f)))) : (forall ('a 'b) (function ('a) bool))   2.6          3.1          1.8  6.91.3    
1 (test 3) 71.79 (define int fact ((int n)) (if ((@ = int) 0 n) 1 (* n (fact (- n 1))))) : (function (int) int)       11.0      3.127.54.2    13.81.8    1.3  9.2
2 (test 1) 5.54 (val e1 '()) : (forall ('a) (list 'a))             4.2                  1.3    
2 (test 2) 8.16 (val e2 (let* ((f (lambda ((int x)) x)) (g f)) (g 1))) : int   2.6              4.2            1.3    
2 (test 3) 11.21 (val e3 (@ map sym int)) : (function ((function (sym) int) (list sym)) (list int))   2.6        4.23.1                1.3    
3 (test 1) 3.08 (val e1 (type-lambda ('a) (lambda (('a x)) x))) : (forall ('a) (function ('a) 'a))                           1.8    1.3    
3 (test 2) 1.31 (val e2 (lambda ((int x)) ((@ = int) 0 x))) : (function (int) bool)                                 1.3    
3 (test 3) 15.52 (val e3 ((@ car int) '(1 2 3 a))) : ERROR                           1.8      13.8  
4 (test 1) 6.14 (val e1 !=) : (forall ('a) (function ('a 'a) bool))               3.1          1.8    1.3    
4 (test 2) 53.81 (val-rec (function (int int) bool) e2 (lambda ((int x) (int y)) (+ x y))) : ERROR       11.0      3.127.5        1.8    1.3  9.2
4 (test 3) 45.24 (val-rec (function (int) int) f f) : ERROR 6.9  2.6  9.3    3.1  4.2      1.8  6.91.3  9.2
5 (test 1) 3.08 (val x (type-lambda ('a) (lambda (((list 'a) l)) ((@ car 'a) l)))) : (forall ('a) (function ((list 'a)) 'a))                           1.8    1.3    
5 (test 2) 5.70 (val y (type-lambda ('a 'b) (lambda (((function ('a) 'b) f) ((list 'a) l)) (f ((@ car 'a) l))))) : (forall ('a 'b) (function ((function ('a) 'b) (list 'a)) 'b))     2.6                    1.8    1.3    
5 (test 3) 3.08 (val d (type-lambda ('a) (lambda (('a v)) v))) : (forall ('a) (function ('a) 'a))                           1.8    1.3    
6 (test 1) 0.00 (val e1 (type-lambda ('a 'b) (lambda (('a x) ('b y) (bool z)) (if z x y)))) : ERROR                                       
6 (test 2) 5.70 (val e2 (@ (type-lambda ('a) (lambda (((list 'a) l) ('a x)) ((@ cons 'a) x l))) int)) : (function ((list int) int) (list int))     2.6                    1.8    1.3    
7 (test 1) 5.54 (val tynil '()) : (forall ('a) (list 'a))             4.2                  1.3    
7 (test 2) 11.00 (val xs (cons 3 '())) : ERROR         11.0                            
8 (test 1) 20.62 (val e1 (lambda (((int int) x)) x)) : ERROR 6.9                      13.8            
8 (test 2) 15.52 (val e2 '(a 1)) : ERROR                           1.8      13.8  
8 (test 3) 20.62 (val e3 (type-lambda ('A) (lambda (('a x)) x))) : ERROR 6.9                      13.8            
9 (test 1) 1.31 (val e1 (@ cons (forall ('a 'b 'c') (function ('a 'b 'c') (forall ('a 'b 'c') (function ('a 'b 'c') 'c')))))) : (function ((forall ('a 'b 'c') (function ('a 'b 'c') (forall ('a 'b 'c') (function ('a 'b 'c') 'c')))) (list (forall ('a 'b 'c') (function ('a 'b 'c') (forall ('a 'b 'c') (function ('a 'b 'c') 'c')))))) (list (forall ('a 'b 'c') (function ('a 'b 'c') (forall ('a 'b 'c') (function ('a 'b 'c') 'c'))))))                                 1.3    
9 (test 2) 5.70 (val e2 (type-lambda ('a 'b 'c') (lambda (('a x)('b c)('c' d)) d))) : (forall ('a 'b 'c') (function ('a 'b 'c') 'c'))     2.6                    1.8    1.3    
9 (test 3) 3.08 (val e3 (type-lambda ('a) 3)) : (forall ('a) int)                           1.8    1.3    
10 (test 1) 5.54 (val e1 (@ '() int)) : (list int)               4.2                1.3    
10 (test 2) 7.31 (val e2 (type-lambda ('a) (lambda (('a x)) ((@ cons 'a) x (@ '() 'a))))) : (forall ('a) (function ('a) (list 'a)))               4.2          1.8    1.3    
10 (test 3) 45.24 (val-rec int e3 (+ e3 1)) : ERROR 6.9  2.6    9.3    3.14.2      1.8  6.91.3  9.2
11 (test 1) 6.98 (val-rec (forall ('a) (function ((function ('a) bool) (list 'a)) bool)) exists? (type-lambda ('a) (lambda (((function ('a) bool) p?) ((list 'a) l)) (if ((@ null? 'a) l) #f (if (p? ((@ car 'a) l)) #t ((@ exists? 'a) p? ((@ cdr 'a) l))))))) : (forall ('a) (function ((function ('a) bool) (list 'a)) bool))     2.6          3.1              1.3    
11 (test 2) 0.00 (val e2 '(((((3 4 5) (2 3) (7))) (((4 5) (6)))))) : (list (list (list (list (list int)))))                                       
11 (test 3) 0.00 (val e3 (lambda ((int x)) (begin (set x (+ x 1)) (set x #t) (set x 3)))) : ERROR                                       
12 (test 1) 5.54 (val nil '()) : (forall ('a) (list 'a))               4.2                1.3    
12 (test 2) 7.31 (val abcd (type-lambda ('a 'b 'c 'd) (lambda (('c x)) ((@ cons 'c) x (@ '() 'c))))) : (forall ('a 'b 'c 'd) (function ('c) (list 'c)))               4.2          1.8    1.3    
12 (test 3) 7.31 (val sym-lister (@ (type-lambda ('a 'b 'c 'd) (lambda (('c x)) ((@ cons 'c) x (@ '() 'c)))) bool int sym int)) : (function (sym) (list sym))               4.2          1.8    1.3    
13 (test 1) 218.30 (val-rec (forall ('a) (function ('a) 'a)) e1 (type-lambda ('b) (lambda (('b x)) x))) : (forall ('a) (function ('a) 'a))           9.356.0  3.1  4.255.013.8  55.06.91.313.8  
13 (test 2) 45.24 (val-rec int e2 e2) : ERROR 6.9  2.6    9.3    3.1  4.2    1.8  6.91.3  9.2
13 (test 3) 7.31 (val e3 (while #f (+ 3 #f))) : ERROR                     4.2    1.8    1.3    
14 (test 1) 15.52 (val e1 '(1 2 #t)) : ERROR                           1.8      13.8  
14 (test 2) 1.31 (val e2 ((@ cdr int) '(1))) : (list int)                                 1.3    
14 (test 3) 6.98 (val-rec (forall ('a 'b) (function ((list 'a) 'a) bool)) e3 (type-lambda ('a 'b) (lambda (((list 'a) l) ('a x)) (if ((@ null? 'a) l) #t (if ((@ = 'a) ((@ car 'a) l) x) ((@ e3 'a 'b) ((@ cdr 'a) l) x) #f))))) : (forall ('a 'b) (function ((list 'a) 'a) bool))     2.6          3.1              1.3    
15 (test 1) 4.23 (val e1 (lambda ((int x) (bool y)) (+ x y))) : ERROR                     4.2                
15 (test 2) 11.21 (val e2 (@ filter bool)) : (function ((function (bool) bool) (list bool)) (list bool))     2.6        4.23.1              1.3    
15 (test 3) 0.00 (val e3 (@ length #t)) : ERROR                                       
16 (test 1) 15.63 (val ans ((@ either (list sym) bool int) ((@ left (list sym) bool) '(a b c d)) (@ length sym) (lambda ((bool x)) (if x 5 7)))) : int     2.6          3.1          1.86.91.3    
16 (test 2) 6.98 (val-rec (forall ('a) (function ((list 'a) int) 'a)) nth-element (type-lambda ('a) (lambda (((list 'a) l) (int n)) (if ((@ = int) n 0) ((@ car 'a) l) ((@ nth-element 'a) ((@ cdr 'a) l) (- n 1)))))) : (forall ('a) (function ((list 'a) int) 'a))     2.6          3.1              1.3    
16 (test 3) 12.99 (val-rec (forall ('a) (function ((list 'a) int) 'a)) nth-element (type-lambda ('a) (lambda (((list 'a) l) (int n)) (if ((@ = int) n 0) ((@ car 'a) l) ((@ nth-element 'a) ((@ cdr 'a) l) (- n 1)))))) (val ans ((@ nth-element (list int)) '(1 2 3 4) 2)) : ERROR     2.6          3.1  4.2      1.8  1.3    
17 (test 1) 8.18 (val e1 (@ + int)) : ERROR 6.9                              1.3    
17 (test 2) 11.00 (val e2 ('1 5)) : ERROR         11.0                            
17 (test 3) 20.93 (val e3 (type-lambda ('a 'b) (lambda (('a a) ('b b)) (begin (let( (x a) (y b) (z ((@ cons 'a) a (@ '() 'a)))) ((@ car 'a) z)))))) : (forall ('a 'b) (function ('a 'b) 'a))     2.6  11.0    4.2            1.8  1.3    
18 (test 1) 0.00 (val e1 cdr) : (forall ('a) (function ((list 'a)) (list 'a)))                                       
18 (test 2) 6.00 (val e2 (/ 4 #f)) : ERROR                     4.2      1.8        
18 (test 3) 4.39 (val e3 (type-lambda ('a 'b) (lambda (('a x) ('b y)) y ))) : (forall ('a 'b) (function ('a 'b) 'b))     2.6                      1.8        
19 (test 1) 45.24 (val-rec int e1 e1) : ERROR 6.9  2.6    9.3    3.1  4.2      1.8  6.91.39.2
19 (test 2) 11.21 (val e2 (@ map int bool)) : (function ((function (int) bool) (list int)) (list bool))     2.6        4.23.1                1.3  
19 (test 3) 6.00 (val e3 ((@ cons int) 3 '())) : ERROR                     4.2      1.8        
20 (test 1) 5.54 (val e1 ((@ cons (list int)) '(1 2) (@ '() (list int)))) : (list (list int))               4.2                  1.3  
20 (test 2) 5.70 (val e2 o) : (forall ('a 'b 'c) (function ((function ('b) 'c) (function ('a) 'b)) (function ('a) 'c)))     2.6                      1.8    1.3  
20 (test 3) 36.07 (val-rec bool x (if x #t #f)) : ERROR 6.9  2.6    9.3    3.1  4.2      1.8  6.91.3  
Back to the COMP 105 home page.