On 2010 Dec 21, at 11:50, Sayth Renshaw wrote: > Doing the netpay of employee tax = 0.15 and pay = hrs *12. From the beginner > tutorial. I see two ways a simple and a hard way but neither work.
I think you may need to go a little further back in the tutorial. It looks like you're misunderstanding some fairly important basics. > (define (tax t) > (= t 0.15)) That defines a function called 'tax', which takes one argument, and returns true if that argument is numerically equal to 0.15 -- that is, the function '=' is an equality test, not an assignment. That's probably not what you think it does. > (define (payrate p) > (= p $12.00)) That defines another function, called 'payrate', which tests whether its argument is numerically equal to the value of the identifier (ie, 'variable') $12.00. That identifier hasn't been defined anywhere, though something like (define $12.00 1234.56) would work. > (define (netpay hours tax payrate) > (* h p)-(* t(* h p))) That defines a function which takes three arguments, named 'hours', 'tax' and 'payrate', and which doesn't use any of them. It also uses an infix '-'. Somethink like (define (netpay hours tax payrate) (- (* hours payrate) (* hours payrate tax))) (netpay 40 0.15 5.0) is probably closer to what you want. Of course, the following is neater: (define (netpay2 hours tax payrate) (* hours payrate (- 1 tax))) Like I say, it would probably be useful to head back to the beginning of whichever tutorial it is you're reading. Good luck, Norman -- Norman Gray : http://nxg.me.uk _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

