[racket] Defining Variables in a function
Working through HTDP and I got to this example(below) I created a working
function but I reused a function, is there a better way to assign a variable
in another function so, for refernce this was the question.
*Exercise 4.4.2.* Develop the function tax, which consumes the gross pay
and produces the amount of tax owed. For a gross pay of $240 or less, the
tax is 0%; for over $240 and $480 or less, the tax rate is 15%; and for any
pay over $480, the tax rate is 28%.
My Working solution
;;; Given a gross wage determine the tax that applies taxed in bands
;;; number -> number
;;; less than 240, greater than 240 < 480, greater than 480
(define (tax_pay pay)
(cond
[(<= pay 240) 0]
[(<= pay 480) (* pay 0.15)]
[(> pay 480) (* pay 0.28)]))
(define (pay hours)
(* 12 hours))
;;; Calculate netpay (pay - tax)
;;; Pay rate 12 and user input hours
;;; (pay (payrate * hours)) - (pay -(tax (pay * tax percent))
(define (netpay hours)
(- (pay hours)(tax_pay (pay hours))))
Proposed solution - assign a variable to the pay calculation and reuse it,
however it thinks I am redefining the function tax_pay. In embryo this is a
better way to crack the egg isn't it?
(define (netpay2 hours)
(h (pay hours)
(- h (tax_pay h))))
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20110102/1bf8d9be/attachment.html>