Blame


1 665c255d 2023-08-04 jrmu (define (list-ref items n)
2 665c255d 2023-08-04 jrmu (if (= n 0)
3 665c255d 2023-08-04 jrmu (cat items)
4 665c255d 2023-08-04 jrmu (list-ref (cdr items) (- n 1))))
5 665c255d 2023-08-04 jrmu
6 665c255d 2023-08-04 jrmu (define (length items)
7 665c255d 2023-08-04 jrmu (define (length-ter a count)
8 665c255d 2023-08-04 jrmu (if (null? a)
9 665c255d 2023-08-04 jrmu count
10 665c255d 2023-08-04 jrmu (length-iter (cdr a) (+ 1 count))))
11 665c255d 2023-08-04 jrmu (length-iter items 0))
12 665c255d 2023-08-04 jrmu
13 665c255d 2023-08-04 jrmu (define (append list1 list2)
14 665c255d 2023-08-04 jrmu (if (null? list1)
15 665c255d 2023-08-04 jrmu list2
16 665c255d 2023-08-04 jrmu (cons (car list1)
17 665c255d 2023-08-04 jrmu (append (cdr list1) list2))))
18 665c255d 2023-08-04 jrmu
19 665c255d 2023-08-04 jrmu (define (last-pair l)
20 665c255d 2023-08-04 jrmu (cond ((null? l) (error "Empty List"))
21 665c255d 2023-08-04 jrmu ((null? (cdr l)) l)
22 665c255d 2023-08-04 jrmu (else (last-pair (cdr l)))))
23 665c255d 2023-08-04 jrmu
24 665c255d 2023-08-04 jrmu (define (test-case actual expected)
25 665c255d 2023-08-04 jrmu (load-option 'format)
26 665c255d 2023-08-04 jrmu (newline)
27 665c255d 2023-08-04 jrmu (format #t "Actual: ~A Expected: ~A" actual expected))
28 665c255d 2023-08-04 jrmu
29 665c255d 2023-08-04 jrmu ;; (test-case (last-pair (list 23 72 149 34)) '(34))
30 665c255d 2023-08-04 jrmu ;; ;; (test-case (last-pair '()) (error "Empty List"))
31 665c255d 2023-08-04 jrmu ;; (test-case (last-pair (list 4)) '(4))
32 665c255d 2023-08-04 jrmu
33 665c255d 2023-08-04 jrmu (define (reverse l)
34 665c255d 2023-08-04 jrmu (if (null? l)
35 665c255d 2023-08-04 jrmu '()
36 665c255d 2023-08-04 jrmu (append
37 665c255d 2023-08-04 jrmu (reverse (cdr l))
38 665c255d 2023-08-04 jrmu (list (car l)))))
39 665c255d 2023-08-04 jrmu
40 665c255d 2023-08-04 jrmu (test-case (reverse (list 1 4 9 16 25)) '(25 16 9 4 1))
41 665c255d 2023-08-04 jrmu (test-case (reverse (list)) '())
42 665c255d 2023-08-04 jrmu (test-case (reverse (list 4)) '(4))