Hi Sam! I wasn't familiar with racket/load and it seems neat. But it either seems too hopeless, or not hopeless enough:
Since all forms within a racket/load module are evaluated in the top level, bindings cannot be exported from the module using provide. This seems like a bit too much unfortunately. If I were to be writing for instance a web application or a game or what have you, I'd still want the dynamism of being able to redefine things, but I'd also want to be able to export things from a module. Maybe here's a properly hopeless level of indirection? What if we had something like a lambda-box that for toplevel definitions of functions instead wrapped the function in a box. It can still be invoked, but if redefined, the contents of the box could be swapped out with a new function? That's not too far off from how Guile's redefining works presently, if I understand right. Redefining a toplevel non-function could just set! the variable. I guess maybe you couldn't provide more than what you've already provided from the module. But that's probably okay? Sam Tobin-Hochstadt writes: > You might find the racket/load language useful for this. > > Sam > > On Wed, Mar 21, 2018, 12:49 PM Christopher Lemmer Webber < > [email protected]> wrote: > >> Just curious. I have my reasons... for instance, I wrote a multiplayer >> game in Guile where you could change the world while players are in it >> without kicking them out. I don't think you can do that while having a >> toplevel that's as fixed as Racket's is. >> >> I've read the emails from Matthew Flatt about "the toplevel is >> hopeless". So the question is... how hard would it be to support >> "#lang hopeless"? :) A language for the toplevel! >> >> Maybe the toplevel is generally hopeless, but those of us who wish to >> live in a world of despair can happily still have it. >> >> -- >> 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. >> -- 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.

