; tax brackets

(define brackets '((100000 0.4) (30000 0.25) (10000 0.1)))

(define (tax income brackets)
  (if (null? brackets) 0
    (+ (* (max (- income (caar brackets)) 0) (cadar brackets))
       (tax (min income (caar brackets)) (cdr brackets)))))

(display (tax 123456 brackets))