File tree Expand file tree Collapse file tree 8 files changed +42
-3
lines changed
Expand file tree Collapse file tree 8 files changed +42
-3
lines changed Original file line number Diff line number Diff line change 5353 (check-equal? (run '(char? #t )) #f )
5454 (check-equal? (run '(char? 8 )) #f )
5555 (check-equal? (run '(char->integer #\a )) (char->integer #\a ))
56- (check-equal? (run '(integer->char 955 )) #\λ ))
56+ (check-equal? (run '(integer->char 955 )) #\λ )
57+
58+ ;; Evildoer examples
59+ (check-equal? (run '(void)) (void))
60+ (check-equal? (run '(begin 1 2 )) 2 )
61+ (check-equal? (run '(eof-object? (void))) #f ))
5762
5863(test-runner (λ (e) (interp (parse e))))
5964(test-runner (λ (e) (bits->value (asm-interp (compile (parse e))))))
Original file line number Diff line number Diff line change 1818
1919;; Any -> Boolean
2020(define (op0? x)
21- (memq x '(read-byte peek-byte)))
21+ (memq x '(read-byte peek-byte void )))
2222
2323;; Any -> Boolean
2424(define (op1? x)
Original file line number Diff line number Diff line change 5656 (check-equal? (run '(char? 8 )) #f )
5757 (check-equal? (run '(char->integer #\a )) (char->integer #\a ))
5858 (check-equal? (run '(integer->char 955 )) #\λ )
59+
60+ ;; Evildoer examples
61+ (check-equal? (run '(void)) (void))
62+ (check-equal? (run '(begin 1 2 )) 2 )
63+ (check-equal? (run '(eof-object? (void))) #f )
64+
5965 ;; Extort examples
6066 (check-equal? (run '(add1 #f )) 'err )
6167 (check-equal? (run '(sub1 #f )) 'err )
Original file line number Diff line number Diff line change 1313
1414;; type Env = (Listof (List Id Value))
1515
16+ ;; (list (list 'q 10) (list 'x 5) (list 'z #f) (list 'q 2))
17+ #;
18+ (let ((q 2 ))
19+ (let ((z #f ))
20+ (let ((x 5 ))
21+ (let ((q 10 ))
22+ q))))
23+
1624;; Expr -> Answer
1725(define (interp e)
1826 (interp-env e '() ))
Original file line number Diff line number Diff line change 2323
2424;; Any -> Boolean
2525(define (op0? x)
26- (memq x '(read-byte peek-byte)))
26+ (memq x '(read-byte peek-byte void )))
2727(define (op1? x)
2828 (memq x '(add1 sub1 zero? char? integer->char char->integer
2929 write-byte eof-object?)))
Original file line number Diff line number Diff line change 4444 (check-equal? (run '(char? 8 )) #f )
4545 (check-equal? (run '(char->integer #\a )) (char->integer #\a ))
4646 (check-equal? (run '(integer->char 955 )) #\λ )
47+
48+ ;; Evildoer examples
49+ (check-equal? (run '(void)) (void))
50+ (check-equal? (run '(begin 1 2 )) 2 )
51+ (check-equal? (run '(eof-object? (void))) #f )
52+
4753 ;; Extort examples
4854 (check-equal? (run '(add1 #f )) 'err )
4955 (check-equal? (run '(sub1 #f )) 'err )
Original file line number Diff line number Diff line change 4444 (check-equal? (run '(char? 8 )) #f )
4545 (check-equal? (run '(char->integer #\a )) (char->integer #\a ))
4646 (check-equal? (run '(integer->char 955 )) #\λ )
47+
48+ ;; Evildoer examples
49+ (check-equal? (run '(void)) (void))
50+ (check-equal? (run '(begin 1 2 )) 2 )
51+ (check-equal? (run '(eof-object? (void))) #f )
52+
4753 ;; Extort examples
4854 (check-equal? (run '(add1 #f )) 'err )
4955 (check-equal? (run '(sub1 #f )) 'err )
Original file line number Diff line number Diff line change 4848 (check-equal? (run '(if 0 3 4 )) 3 )
4949 (check-equal? (run '(zero? 4 )) #f )
5050 (check-equal? (run '(zero? 0 )) #t )
51+
5152 ;; Dodger examples
5253 (check-equal? (run #\a ) #\a )
5354 (check-equal? (run #\b ) #\b )
5657 (check-equal? (run '(char? 8 )) #f )
5758 (check-equal? (run '(char->integer #\a )) (char->integer #\a ))
5859 (check-equal? (run '(integer->char 955 )) #\λ )
60+
61+ ;; Evildoer examples
62+ (check-equal? (run '(void)) (void))
63+ (check-equal? (run '(begin 1 2 )) 2 )
64+ (check-equal? (run '(eof-object? (void))) #f )
65+
5966 ;; Extort examples
6067 (check-equal? (run '(add1 #f )) 'err )
6168 (check-equal? (run '(sub1 #f )) 'err )
6673 (check-equal? (run '(write-byte #f )) 'err )
6774 (check-equal? (run '(write-byte -1 )) 'err )
6875 (check-equal? (run '(write-byte 256 )) 'err )
76+
6977 ;; Fraud examples
7078 (check-equal? (run '(let ((x 7 )) x)) 7 )
7179 (check-equal? (run '(let ((x 7 )) 2 )) 2 )
You can’t perform that action at this time.
0 commit comments