; sales commissions (define (sum xs) (apply + xs)) (define (commission) (let loop ((commissions (list))) (display "Enter sales amount or CTRL-D: ") (let ((sale (read))) (if (eof-object? sale) (begin (newline) (values (list->vector (reverse commissions)) (sum commissions))) (let ((commission (+ (* sale 0.1) 200))) (display " Commission is ") (display commission) (newline) (loop (cons commission commissions))))))) (commission)