fork download
  1. ; sales commissions
  2.  
  3. (define (sum xs) (apply + xs))
  4.  
  5. (define (commission)
  6. (let loop ((commissions (list)))
  7. (display "Enter sales amount or CTRL-D: ")
  8. (let ((sale (read)))
  9. (if (eof-object? sale)
  10. (begin (newline)
  11. (values (list->vector (reverse commissions))
  12. (sum commissions)))
  13. (let ((commission (+ (* sale 0.1) 200)))
  14. (display " Commission is ")
  15. (display commission) (newline)
  16. (loop (cons commission commissions)))))))
  17.  
  18. (commission)
Success #stdin #stdout 0s 7844KB
stdin
1000
500
2500
2000
stdout
Enter sales amount or CTRL-D:     Commission is 300.0
Enter sales amount or CTRL-D:     Commission is 250.0
Enter sales amount or CTRL-D:     Commission is 450.0
Enter sales amount or CTRL-D:     Commission is 400.0
Enter sales amount or CTRL-D: