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.

Reply via email to