#lang racket (require htdp/testing) ;; file: hw1pr1.rkt ;; name: ;; time spent: ;; other comments? ;; problem 0 ;; -- one possible example of appropriate commenting ;; -- and testing... ;; len ;; inputs: L, a list of any items ;; output: the number of top-level items in the input list (define (len L) (if (null? L) 0 (+ 1 (len (rest L))))) ;(check-expect (len '()) 0) ;; uncomment these three lines ;(check-expect (len '(s p a m)) 4) ;; to run the tests ;(generate-report) ;; problem 1 ;; remove-all ;; ;; (define (remove-all e L) 0) ;; empty until implemented! (check-expect (remove-all "i" '("a" "l" "i" "i" "i" "e" "n")) '("a" "l" "e" "n")) (check-expect (remove-all "i" '( ("a" "l" "i") "i" "i" "e" "n")) '(("a" "l" "i") "e" "n")) (check-expect (remove-all 0 '(1 0 1 0 1 0)) '(1 1 1)) ;; problem 2 ;; prefix ;; ;; (define (prefix? P L) 0) (check-expect (prefix? '() '(s p a m)) #t) (check-expect (prefix? '(s p) '(s p a m)) #t) (check-expect (prefix? '(s m) '(s p a m)) #f) (check-expect (prefix? '(p a) '(s p a m)) #f) ;; problem 3 ;; sublist ;; ;; (define (sublist? S L) 0) (check-expect (sublist? '() '(s p a m)) #t) (check-expect (sublist? '(s p) '(s p a m)) #t) (check-expect (sublist? '(s m) '(s p a m)) #f) (check-expect (sublist? '(p a) '(s p a m)) #t) (check-expect (sublist? '(a b c) '(b a b a c)) #f) (check-expect (sublist? '(a b c) '(b a b c c)) #t) ;; problem 4 ;; number (define (number L) 0) (check-expect (number '(jan feb mar apr)) '((0 jan) (1 feb) (2 mar) (3 apr))) (check-expect (number '(0 I II III IV V VI)) '((0 0) (1 I) (2 II) (3 III) (4 IV) (5 V) (6 VI))) (check-expect (number '()) '()) "uncomment the next line, eventually" ;(generate-report)