;; A ListOfNumber is either ;; -- empty ;; (cons Number ListOfNumber) #| (define (f lon) (cond [(empty? lon) ...] [(cons? lon) ... (first lon) ... (f (rest lon)) ...])) |# ;; negate: ListOfNumber -> ListOfNumber ;; negates all numbers (define (negate lon) (cond [(empty? lon) empty] [(cons? lon) (cons (* -1 (first lon)) (negate (rest lon)))])) ;; Tests (equal? (negate empty) empty) (equal? (negate (cons 1 empty)) (cons -1 empty)) (equal? (negate (cons -1 empty)) (cons 1 empty))