# [racket] Defining Variables in a function

 From: Sayth Renshaw (flebber.crue at gmail.com) Date: Sat Jan 1 09:03:28 EST 2011 Previous message: [racket] problem with choose language and submit bug report Next message: [racket] Defining Variables in a function Messages sorted by: [date] [thread] [subject] [author]

```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>
```

 Posted on the users mailing list. Previous message: [racket] problem with choose language and submit bug report Next message: [racket] Defining Variables in a function Messages sorted by: [date] [thread] [subject] [author]