Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

2
  • 2
    gensym prevents the macro from accidentally messing with the macro user, but does not prevent the macro user from messing with the macro. For example, a macro user can redefine if or something like that. (The question "why would anybody do that" is irrelevant. This is a simple example that demonstrates that it's possible, and it's tricky to reason about non-hygienic macros) Commented Nov 4, 2016 at 3:08
  • 2
    Unhygienic macros are certainly useful. I'm not sure about Scheme, but Racket has lots of "hygiene-bending" operations. The language's macros are hygienic by default. They just make you very conscious when you break hygiene. Commented Nov 4, 2016 at 3:10