4 ms·
I'm no lisper, but I'm pretty sure it'd take more than an eval because of the context a closure carries with it. if you were sending a pure, anonymous function
by jdkardia 3y ago
I'm no lisper, but I'm pretty sure it'd take more than an eval because of the context a closure carries with it.
if you were sending a pure, anonymous function, that would work fine. But if you're making a closure that makes use of any surrounding variables, libraries, or state, that's a non trivial set of information to transmit across the wire.
- alexisread 3y agoI think this is where Delimited Dynamic binding would come in to play: https://okmij.org/ftp/papers/DDBinding.pdf https://okmij.org/ftp/papers/DDBinding.pdf I think that you would be able to freeze certain variables in the closure, and have others open eg. API_ENDPOINT variable might be configured to change between environments. Something like https://github.com/GiacomoCau/wat-js https://github.com/GiacomoCau/wat-js implements delimited continuations, ddbinding and algebraic effects (registered handlers for I/O etc) - pushing continuations over the network should be easier with these facilities.