; 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))
OyB0YXggYnJhY2tldHMKCihkZWZpbmUgYnJhY2tldHMgJygoMTAwMDAwIDAuNCkgKDMwMDAwIDAuMjUpICgxMDAwMCAwLjEpKSkKCihkZWZpbmUgKHRheCBpbmNvbWUgYnJhY2tldHMpCiAgKGlmIChudWxsPyBicmFja2V0cykgMAogICAgKCsgKCogKG1heCAoLSBpbmNvbWUgKGNhYXIgYnJhY2tldHMpKSAwKSAoY2FkYXIgYnJhY2tldHMpKQogICAgICAgKHRheCAobWluIGluY29tZSAoY2FhciBicmFja2V0cykpIChjZHIgYnJhY2tldHMpKSkpKQoKKGRpc3BsYXkgKHRheCAxMjM0NTYgYnJhY2tldHMpKQ==