COMP 105 type inference 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 AntApeAspAukBatBeeBoaCodCowCubDoeDogEelEftElkEmuEweFoxGnuHenHogOx
Ant (test 1) 40.44 (letrec ((func (lambda (a b num) (if a b (+ 1 num))))) func)     3.03.9      1.0      31.5    1.0            
Ant (test 2) 2.00 (letrec ((func (lambda (a b num) (if a #t (+ 1 num))))) func)               1.0            1.0            
Ant (test 3) 2.00 (takewhile ((curry all?) 1) '(1 #t))               1.0            1.0            
Ape (test 1) 45.69 (val-rec test1 (lambda (y) (letrec ((z (lambda (a) (if (= 0 a) 0 (+ a ((o z test1) (- a 1))))))) (z y))))     3.03.9  31.5  1.05.2          1.0            
Ape (test 2) 5.00 (val-rec test2 (lambda (y) (letrec ((z (lambda (a) (if (= 0 a) 0 (+ a ((z o test2) (- a 1))))))) (z y))))     3.0        1.0            1.0            
Ape (test 3) 9.00 (define test3 (x) (if (= 0 x) 0 (+ x (test3 o test3) (- x 1))))         7.0    1.0            1.0            
Asp (test 1) 8.94 (lambda (l) (if (car l) '() '()))     3.03.9      1.0            1.0            
Asp (test 2) 10.73 (letrec ((f (lambda (x) (+ 1 x))) (g (lambda (x) (f (not x))))) g)   5.73.0        1.0            1.0            
Asp (test 3) 9.00 (let ((symnil (cdr (list1 'a))) (x 1)) (begin (cons x symnil)))             7.01.0            1.0            
Auk (test 1) 7.25 (val win (lambda (x) (letrec ((b (lambda (y) (+ y 1)))) (b x))))               1.05.2          1.0            
Auk (test 2) 2.00 (define foo (a b) (letrec ((d (+ a 4))(e (if b 2 a))) (d e)))               1.0            1.0            
Auk (test 3) 23.44 (define newimpossible (f b) (if b (f b) f))     10.53.97.0    1.0            1.0            
Bat (test 1) 19.98 (letrec ((x (lambda (y) y))(z (lambda (y) (x y)))) (z 3))   5.7        7.01.05.2          1.0            
Bat (test 2) 2.00 (let ((x 5)(weird (lambda (l y z) (cons x y)))) 9)               1.0            1.0            
Bat (test 3) 2.00 (letrec ((x (lambda (y) (+ y y)))) (x #f))               1.0            1.0            
Bee (test 1) 26.94 (lambda (x y z) (begin (if x y 1) (if x #f y)))         3.9    1.0          21.01.0            
Bee (test 2) 81.23 (begin)   5.710.5        1.0    31.5      1.0          31.5
Bee (test 3) 5.00 (define f (x) (letrec ((foo (lambda (vs) (if (null? vs) (+ x 1) (foo vs))))) (if x (foo '(1 2 3)) (foo '(4 5 6)))))       3.0      1.0            1.0            
Boa (test 1) 180.44 (define f (x) (let ((g (lambda (x) (f x)))) (g f)))       3.03.97.07.01.0  31.5        1.063.063.0        
Boa (test 2) 71.94 (define g (x) (let ((a (+ x 1)) (b (and x #t))) x))       3.03.9    1.0            1.0      63.0    
Boa (test 3) 9.00 (define h (x) (letrec ((y z) (z (+ y 1))) (and y x)))             7.01.0            1.0            
Cod (test 1) 2.00 (car 3)               1.0            1.0            
Cod (test 2) 5.00 (lambda (p) ((lambda (x y) (pair x y)) (fst p) (snd p)))       3.0      1.0            1.0            
Cod (test 3) 2.00 (lambda (p) ((lambda (x y) (pair (x y))) (fst p) (snd p)))               1.0            1.0            
Cow (test 1) 11.00 (val-rec f (lambda (g) (g f)))       3.0  7.0                1.0            
Cow (test 2) 6.25 (cons (+ 1 2) '())                 5.2          1.0            
Cow (test 3) 4.00 (lambda (x y z) (cons (cons x y) z))       3.0                    1.0            
Cub (test 1) 2.00 (fst '(2 4))                 1.0          1.0            
Cub (test 2) 2.00 (val x (lambda (a b) (letrec ((b 3) (a #t)) (+ a b))))                 1.0          1.0            
Cub (test 3) 2.00 (begin (if (= 4 5) #t #f ))                 1.0          1.0            
Doe (test 1) 12.00 (lambda (f) (f f))       3.0  7.0    1.0          1.0            
Doe (test 2) 2.00 (curry filter null?)                 1.0          1.0            
Doe (test 3) 2.00 (() ((42)))                 1.0          1.0            
Dog (test 1) 23.91 (define foobar (x) (letrec ((y (lambda (a) (z a))) (z (lambda (b) (+ 1 b)))) y))   5.7    3.9    7.01.05.2        1.0            
Dog (test 2) 2.00 (cons 1 #f)                 1.0          1.0            
Dog (test 3) 2.00 (5 five)                 1.0          1.0            
Eel (test 1) 47.44 (lambda (x) (let ((b (+ x 1))) (and (= b 1) x)))       3.03.9    7.01.0  31.5      1.0            
Eel (test 2) 2.00 (val qsort (lambda (lt) (letrec ((sort (lambda (xs tail) ; return elements of xs (sorted) followed by tail (if (null? xs) tail (let* ((pivot (car xs)) (rest (cdr xs)) (right? ((curry lt) pivot)) (left? (o not right?))) (sort (filter left? rest) (cons pivot (sort (filter right? rest) tail)))))))) (lambda (xs) (sort xs '())))))                 1.0          1.0            
Eel (test 3) 26.94 (lambda (x) (begin (+ x 1) (if x 0 1)))         3.9      1.0        21.01.0            
Eft (test 1) 2.00 (if (< 1 2) 1 'fail)                 1.0          1.0            
Eft (test 2) 2.00 (define qsort (p?) (lambda (l) (letrec ( (sort (lambda (sorted unsorted) ; sorted is the sorted list (if (null? unsorted) ; unsorted is the unsorted list sorted (sort (cons (car unsorted) (sort sorted (filter ((curry p?) (car unsorted)) (cdr unsorted)))) (filter (o not ((uncurry p?) (car unsorted))) (cdr unsorted))))))) (sort '() l))))                 1.0          1.0            
Eft (test 3) 2.00 (define qsort (p?) (lambda (l) (letrec ( (sort (lambda (sorted unsorted) ; sorted is the sorted list (if (null? unsorted) ; unsorted is the unsorted list sorted (sort (cons (car unsorted) (sort sorted (filter ((curry p?) (car unsorted)) (cdr unsorted)))) (filter (o not ((curry p?) (car unsorted))) (cdr unsorted))))))) (sort '() l))))                 1.0          1.0            
Elk (test 1) 14.19 (define f (x) (if #t (car x) (f x)))       3.03.9      1.05.2        1.0            
Elk (test 2) 26.44 (define f (x) (if x (car x) (f x)))     10.53.03.97.0    1.0          1.0            
Elk (test 3) 2.00 ((1) () (#t))                 1.0          1.0            
Emu (test 1) 1.00 (val test (lambda (x) (lambda (y))))                 1.0                        
Emu (test 2) 1.00 (+ #t #t)                 1.0                        
Emu (test 3) 1.00 (cons (lambda (x)) (lambda (y)))                 1.0                        
Ewe (test 1) 10.73 (val bad1 (letrec ((o (lambda (n) (= n #t))) (p (lambda (n) (o (+ n 1))))) p))   5.7  3.0        1.0            1.0          
Ewe (test 2) 5.00 (val bad2 (lambda (x y) (cons (fst y) x)))       3.0        1.0            1.0          
Ewe (test 3) 2.00 (val bad3 (lambda (x) (pair (snd x) (fst x))))                 1.0            1.0          
Fox (test 1) 2.00 (cons 5 '())                 1.0            1.0          
Fox (test 2) 96.48 (lambda (x) (letrec ((f (lambda (a) (cons (g a) '()))) (g (lambda (b) (cons (f b) '())))) (f x))) 63.05.710.53.0  7.0    1.05.2          1.0          
Fox (test 3) 81.23 (if #t (begin) #f)   5.710.5          1.0    31.5      1.0        31.5
Gnu (test 1) 2.00 ((() ()) (() (1) ()))                 1.0            1.0          
Gnu (test 2) 2.00 (cons (lambda () #t) (lambda () #t))                 1.0            1.0          
Gnu (test 3) 12.00 (letrec ((f (lambda (l) (cons f l)))) (f '()))       3.0  7.0    1.0            1.0          
Hen (test 1) 79.41 (letrec ((f (lambda (x) (+ x 1))) (g (lambda (y) (letrec ((z (lambda () (f y)))) (z))))) (o g f))   5.7  3.03.9  31.57.01.05.2        21.01.0          
Hen (test 2) 12.98 (letrec ((f (lambda (x) (g))) (g (lambda (x) (f)))) (o g f))   5.7            1.05.2          1.0          
Hen (test 3) 2.00 (letrec ((f (lambda (x y z) z)) (g (lambda (q r s) (q (f r))))) (g f '() #t))                 1.0            1.0          
Hog (test 1) 63.19 (lambda (x xprime y z f) (if x (f y) (let ((app z) (foo x)) (lambda (any) (if any (app foo) (app xprime))))))     10.53.03.97.0    1.05.2    31.5    1.0          
Hog (test 2) 23.91 (letrec ((+ (lambda (x y) (and x y))) (foo (lambda (x y) (+ x y)))) (foo 1 2))   5.7    3.9    7.01.05.2          1.0          
Hog (test 3) 2.00 (val a (lambda (a) (pair (cons a '(#t)) (cons a '(1)))))                 1.0            1.0          
Ox (test 1) 2.00 (schfifty 5)                 1.0            1.0          
Ox (test 2) 2.00 (cons '() 9001)                 1.0            1.0          
Ox (test 3) 23.91 (define id (x) (letrec ((y (lambda (w) (z w))) (z (lambda (q) q))) y))   5.7    3.9    7.01.05.2          1.0          
Back to the COMP 105 home page.