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