Hey, here is what I had written: see purpose statement: ;; N -> Boolean ;; simplistic definition (define (leap-year? y) (= (remainder y 4) 0))
On May 31, 2011, at 8:55 AM, Pierpaolo Bernardi wrote: > On Tue, May 31, 2011 at 07:07, Richard Cleis <[email protected]> wrote: >> Buggy loops can also be avoided by reducing the problem. These leap-year >> cases are less troubling if the function that really matters is used: the >> days in a given year. >> >> (define (days-in-year year) (if (= 0 (remainder year 4)) 366 365)) > > Please. I understand that it is just an example, and that you most > certainly know the correct definition of a leap year, but someone might > not know it and blindly copy this function somewhere where it can cause > harm. > > Kids, use this one instead: > > (define (leap-year? year) > (and (zero? (modulo year 4)) > (or (not (zero? (modulo year 100))) > (zero? (modulo year 400))))) > > (define (days-in-year year) > (if (leap-year? year) > 366 > 365)) > > > 8^) > > P. _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

