Perhaps the real (and simple) solution is to provide def+ a form that explicitly rules out recursion. -- Matthias
On Jun 3, 2012, at 10:06 PM, Eli Barzilay wrote: > 20 minutes ago, Robby Findler wrote: >> Years and years ago, we experimented with a let+ form that did >> things like this, but nowadays define works in so many contexts that >> it seems like the natural thing to use in situations like this. Of >> course, I'm sure there are situations where define is suboptimal >> (eg, see Eli's thread with the up and down arrows) but I'm finding >> that I quite like using it everywhere. > > The thing is that `let*' is still very useful exactly because of the > problems of `define' forms... (So I generally +1 the sentiment of > making it easier to deal with multiple values, but I'd much rather see > a better solution as I was thinking about in the other thread.) > > > Just now, Neil Van Dyke wrote: >> >> Yes, I should have prefaced that I'm speaking out for the people who >> refuse to submit to the injustices of internal "define". > > Other than the potential problems of `define' in creating a recursive > definition by mistake (and gettting an #<undefined> value at runtime), > do you have any other *concrete* objection to using `define' over > `let'? > > -- > ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: > http://barzilay.org/ Maze is Life! > ____________________ > Racket Users list: > http://lists.racket-lang.org/users ____________________ Racket Users list: http://lists.racket-lang.org/users

