FWIW, if you were in my class, that solution would get few points. You
may have noticed people asking you about the design recipe in this
thread. That is a reference to this book that you might find useful:

  http://www.htdp.org/

Robby

On Tue, Dec 21, 2010 at 8:49 PM, Sayth Renshaw <[email protected]> wrote:
>
>
> On Wed, Dec 22, 2010 at 1:19 PM, Sayth Renshaw <[email protected]>
> wrote:
>>
>>
>> On Wed, Dec 22, 2010 at 1:02 PM, Danny Yoo <[email protected]> wrote:
>>>
>>> >>  (define (netpay gross tax-rate)
>>> >>    (-(gross)(* gross tax-rate)))
>>> >>
>>> >> So I expect the function to calculate as
>>> >>
>>> >> = (-(240)(* 240 0.15)
>>> >> = ( - 240 36)
>>> >> = 204
>>>
>>>
>>> Just to be more careful: when you're showing the calculation, make
>>> sure to include the use of the function:
>>>
>>>     (netpay 240 0.15)
>>>     = (-(240)(* 240 0.15)
>>>     = ( - 240 36)
>>>     = 204
>>>
>>>
>>> There's a hitch on the first step in the calculation, and it has to do
>>> with the parens.  Unlike its use in traditional math notation, parens
>>> are significant in this language: that is, every use of paren has to
>>> mean something: it's not superfluous: if you have too many or too few,
>>> it changes the meaning of the program.
>>>
>>>
>>> So, within the larger term here:
>>>
>>>    (- (240) (* 240 0.15))
>>>
>>> the subterm
>>>
>>>    (240)
>>>
>>> means "call the function 240".  That may not be what you intend, but
>>> that what it means in this language.
>>>
>>>
>>> You can see this if you go back to what the error message is saying:
>>>
>>>   function call: expected a defined function name or a primitive
>>> operation name after an open parenthesis, but found a function
>>> argument name
>>>
>>> It's basically trying to point out this problem, that the use of
>>> "(gross)" within the expression
>>>
>>>   (-(gross)(* gross tax-rate))
>>>
>>> is trying to use gross as if it were a function, rather than the
>>> numeric argument to netpay.
>>
>> the subterm
>>
>>    (240)
>>
>> means "call the function 240".  That may not be what you intend, but
>> that what it means in this language.
>>
>> Awesome pickup, thank you. Can I ask how I could then specify gross a
>> single item in the formula and not as a function?
>
> Thank you everyone, I have solved it and thank you for picking me up on the
> small intricises.
>
> This is my solution though it works I do feel I "Cheated" somewhat but this
> is what I have done and tested working.
>
> (define tax-rate 0.15)
> (define pay-rate 12)
> (define (gross hours)
>   (* hours pay-rate))
>
> (define (netpay gross tax-rate)
>     (- gross 0 (* gross tax-rate)))
>
>
>> (netpay (gross 20)tax-rate)
> 204
>>
>
> Sayth
>
> _________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/users
>
_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/users

Reply via email to