;; Solutions to double-all and extract-positives ;; double-all: list-of-number -> list-of-number ;; doubles all the numbers in the list (define (double-all alon) (cond [(empty? alon) empty ] [(cons? alon) (cons (* (first alon) 2) (double-all (rest alon)))])) ;; test function (check-expect (double-all empty) empty) (check-expect (double-all (cons 3 (cons 9 (cons 14 empty)))) (cons 6 (cons 18 (cons 28 empty)))) ;; extract-positives: list-of-number -> list-of-number ;; consumes a list of numbers and produces a list of only the positive numbers (consider 0 positive) (define (extract-positives alon) (cond [(empty? alon) empty ] [(cons? alon) (cond [(>= (first alon) 0) (cons (first alon) (extract-positives (rest alon)))] [else (extract-positives (rest alon))])])) ;;tests (check-expect (extract-positives empty) empty) (check-expect (extract-positives (cons 3 (cons 9 (cons 14 empty)))) (cons 3 (cons 9 (cons 14 empty)))) (check-expect (extract-positives (cons -2 (cons -6 empty))) empty) (check-expect (extract-positives (cons -2 (cons 6 (cons -1 empty)))) (cons 6 empty)) (check-expect (extract-positives (cons -2 (cons 0 (cons 6 empty)))) (cons 0 (cons 6 empty)))