3 ms·
Isn't this problem trivially solved by hygienic macros in Scheme? At least I'm sure it is by fexpr because with them you have complete control over evaluation.
by p4bl0 5y ago
Isn't this problem trivially solved by hygienic macros in Scheme?
At least I'm sure it is by fexpr because with them you have complete control over evaluation.
For those who don't know, fexpr are closures (i.e., lexically scoped functions) that are called with unevaluated arguments (just like macros) and are implicitly passed the dynamic environment (i.e., the call site environment). That way you have all the powers of macros and functions with fexpr, and no scoping problem.
But for the capturing problem mentioned in the article, I'm quite sure hygienic macros are enough.