You may wish to read up on the design recipe and the necessity of ‘local’ 
definitions in HtDP2e: 

  http://www.ccs.neu.edu/home/matthias/HtDP2e/




> On Feb 13, 2017, at 3:46 PM, Angus Comber <[email protected]> wrote:
> 
> But it has to have the signature maxval lst - it is a homework problem.
> 
> So I thought I would need max in the helper function.  Basically to keep an 
> internal max saved value.  Is there another way?
> 
> On 13 February 2017 at 20:38, Matthias Felleisen <[email protected]> wrote:
> 
> Just lift aux out.
> 
> 
> > On Feb 13, 2017, at 3:18 PM, Angus Comber <[email protected]> wrote:
> >
> > If I change the code to:
> >
> >  (define (maxval lst)
> >    (define (aux lst max)
> >      (cond [(null? lst)  max]
> >            [(> (car lst) max) (aux (cdr lst) (car lst))]
> >            [#t (aux (cdr lst) max)]))
> >    (aux lst 0))
> >
> > and comment out #lang racket at the top of the file and select Beginning 
> > Student as the language then I get error:
> >
> > define: expected only one expression for the function body, but found 1 
> > extra part
> >
> > Is this because there is a 2nd define in the function?  Or do I need some 
> > syntax to indicate to run aux at the end of the definition.
> >
> > On 12 February 2017 at 21:34, Matthias Felleisen <[email protected]> 
> > wrote:
> >
> > > On Feb 12, 2017, at 3:00 PM, Angus <[email protected]> wrote:
> > >
> > > I am a beginner Racket developer by the way.
> > >
> > > Here is my maxval function which is supposed to take a list and return 
> > > the largest integer in the list.
> > >
> > > (define (maxval lst)
> > >   (define (aux lst max)
> > >     (cond [(null? lst)  max]
> > >           [(car lst) > max (aux (cdr lst) (car lst))]
> > >           [#t (aux (cdr lst) max)]))
> > >   (aux lst 0))
> > >
> > >
> > > Using the function always returns the last value in the list
> > >
> > >> (maxval (list 1 2 3 5 6 1))
> > > 1
> > >
> > > The code looks correct to me, but I must be missing something.  What have 
> > > I done wrong?
> >
> >
> > Your code is 100% correct, conceptually. Sadly, it’s suffering from a 
> > mistake that I saw many many times in the 90s and before. And that’s 
> > precisely why we get beginners started on Beginning Student Language in 
> > DrRacket instead of plain Racket. Try it out for your next few exercises or 
> > even this one, to see whether the error message would have helped.
> >
> > — Matthias
> >
> >
> 
> 



-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to