Blame


1 665c255d 2023-08-04 jrmu (define (test-case actual expected)
2 665c255d 2023-08-04 jrmu (newline)
3 665c255d 2023-08-04 jrmu (display "Actual: ")
4 665c255d 2023-08-04 jrmu (display actual)
5 665c255d 2023-08-04 jrmu (newline)
6 665c255d 2023-08-04 jrmu (display "Expected: ")
7 665c255d 2023-08-04 jrmu (display expected)
8 665c255d 2023-08-04 jrmu (newline))
9 665c255d 2023-08-04 jrmu
10 665c255d 2023-08-04 jrmu (define (mystery x)
11 665c255d 2023-08-04 jrmu (define (loop x y)
12 665c255d 2023-08-04 jrmu (if (null? x)
13 665c255d 2023-08-04 jrmu y
14 665c255d 2023-08-04 jrmu (let ((temp (cdr x)))
15 665c255d 2023-08-04 jrmu (set-cdr! x y)
16 665c255d 2023-08-04 jrmu (loop temp x))))
17 665c255d 2023-08-04 jrmu (loop x '()))
18 665c255d 2023-08-04 jrmu
19 665c255d 2023-08-04 jrmu ;; Explain what mystery does in general.
20 665c255d 2023-08-04 jrmu
21 665c255d 2023-08-04 jrmu ;; mystery reverses the list x
22 665c255d 2023-08-04 jrmu
23 665c255d 2023-08-04 jrmu (define v (list 'a 'b 'c 'd))
24 665c255d 2023-08-04 jrmu
25 665c255d 2023-08-04 jrmu (define w (mystery v))
26 665c255d 2023-08-04 jrmu (test-case v '(a))
27 665c255d 2023-08-04 jrmu (test-case w '(d c b a))
28 665c255d 2023-08-04 jrmu