FWIW, there have been some (somewhat) recent changes to the way internal definitions work that make them behave much better. In particular, if you have a bunch of internal definitions with expressions interspersed, then they all go in the same (recursive) scope.
Robby On Mon, Jan 3, 2011 at 10:33 AM, Matthias Felleisen <matth...@ccs.neu.edu> wrote: > > On Jan 3, 2011, at 11:31 AM, Stefan Schmiedl wrote: > >> Hi. >> >> In the web-server related documentation, I see the preferred way to >> create local procedures as >> >> (define (start request) >> (local ((define (response-generator...)) >> (define (some-handler...))) >> (do-something-with-these))) >> >> Another way to create local procedures is >> >> (define (start request) >> (define (response-generator...)) >> (define (some-handler...)) >> (do-something-with-these))) >> >> Is there some (subtle?) difference between these approaches? >> Which way is appropriate in what conditions? > > > There is. An experienced programmer (*) should go with the second form. > > (*) someone who can handle error messages and subtle changes to them. > _________________________________________________ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/users > _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users