On Wed, Dec 22, 2010 at 2:04 PM, Robby Findler <[email protected]>wrote:
> 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 > > > Indeed I know what you are referencing. ;; *Contract*: area-of-ring : number number -> number ;; *Purpose*: to compute the area of a ring whose radius is ;; outer and whose hole has a radius of inner ;; *Example*: (area-of-ring 5 3) should produce 50.24 ;; *Definition*: [refines the header] (define (area-of-ring outer inner) (- (area-of-disk outer) (area-of-disk inner))) ;; *Tests*: (area-of-ring 5 3) ;; expected value 50.24
_________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

