I like mixing definitions and expressions -- maybe the bodies of `cond' etc should also allow it?
The only downside I see is the possible confusion in somthing like (define (foo x) (when (even? x) (define x (add1 x)) (printf "increment\n")) x) ;; why isn't this working? but that seems like a minor point (without that `printf' you'd still get a syntax error; and the same confusion can already happen with `let' etc). -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev