how do I stop the caller?
figured it out
run (({stop [this block V]} @>) of (this [caller V])) @:>
or tell (this [caller V]) to ({stop [this block V]}@>) @:>
Isn't it fantastic that you can actually do that? I don't think anything quite like that is in any other language, although it's clearly related to the first class continuations of Scheme.
I feel like it also hinges from the fact that snap is multithreaded instead of the standard single threading of most languages.
what about putting the block you made in a custom block?
???
stop this block
should not work this way ...
It acts like stop this script
I think it might be stopping the "run" block itself, not the custom block
it behaves as if it was wrapped in an "if <true>" block instead of a definition
It does not work this way
That's the point. Ringified stop
is not aware of its lexical nor dynamic scope ,i.e., being part of the custom block.
My guess is that this behavior is connected with tail call elimination.
It's not a big deal, but this *
is rather a lexical context without reference to running process/thread, so telling to stop this *
does not work
The same is true for

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.