No, there is no such thing in R6RS. Some rare implementations may support something similar, but overwhelmingly (including eval in other languages!) This is not possible.
The reason for this is simple: it interrupts compilation because it causes the two functions to differ based on local names, and in some cases may also prohibit simple optimizations. For example, if there is something that you can fill in for your own ??? , then the compiler will have to have two bindings, even if they can be optimized. In those rare cases, when it is possible, everything that is used in ??? (which eval is just used in some languages) starts another compilation that displays known bindings to their values. (There some strange behavior with eval is mentioned literally in the JS code in some browsers, which is actually the same problem.)
source share