(en.wikipedia.org) Hygienic macro - Wikipedia

ROAM_REFS: https://en.wikipedia.org/wiki/Hygienic_macro

In computer science, hygienic macros are macros whose expansion is guaranteed not to cause the accidental capture of identifiers. They are a feature of programming languages such as Scheme, Dylan, Rust, Nim, and Julia. The general problem of accidental capture was well known in the Lisp community before the introduction of hygienic macros. Macro writers would use language features that would generate unique identifiers (e.g., gensym) or use obfuscated identifiers to avoid the problem. Hygienic macros are a programmatic solution to the capture problem that is integrated into the macro expander. The term "hygiene" was coined in Kohlbecker et al.'s 1986 paper that introduced hygienic macro expansion, inspired by terminology used in mathematics.

Local Graph

org-roam d5573759-691d-4e50-8a2f-88cb349aad28 (en.wikipedia.org) Hygienic macro - W... //en.wikipedia.org/wiki/Computer_science https://en.wikipedia.org/wiki/Computer_science d5573759-691d-4e50-8a2f-88cb349aad28->//en.wikipedia.org/wiki/Computer_science //en.wikipedia.org/wiki/Macro_(computer_science) https://en.wikipedia.org/wiki/Macro_(computer_science) d5573759-691d-4e50-8a2f-88cb349aad28->//en.wikipedia.org/wiki/Macro_(computer_science) //en.wikipedia.org/wiki/Hygienic_macro#The_hygiene_problem https://en.wikipedia.org/wiki/Hygienic_macro#The_hygiene_problem d5573759-691d-4e50-8a2f-88cb349aad28->//en.wikipedia.org/wiki/Hygienic_macro#The_hygiene_problem //en.wikipedia.org/wiki/Identifier https://en.wikipedia.org/wiki/Identifier d5573759-691d-4e50-8a2f-88cb349aad28->//en.wikipedia.org/wiki/Identifier //en.wikipedia.org/wiki/Programming_language https://en.wikipedia.org/wiki/Programming_language d5573759-691d-4e50-8a2f-88cb349aad28->//en.wikipedia.org/wiki/Programming_language //en.wikipedia.org/wiki/Scheme_(programming_language) https://en.wikipedia.org/wiki/Scheme_(programming_language) d5573759-691d-4e50-8a2f-88cb349aad28->//en.wikipedia.org/wiki/Scheme_(programming_language) //en.wikipedia.org/wiki/Dylan_(programming_language) https://en.wikipedia.org/wiki/Dylan_(programming_language) d5573759-691d-4e50-8a2f-88cb349aad28->//en.wikipedia.org/wiki/Dylan_(programming_language) //en.wikipedia.org/wiki/Rust_(programming_language) https://en.wikipedia.org/wiki/Rust_(programming_language) d5573759-691d-4e50-8a2f-88cb349aad28->//en.wikipedia.org/wiki/Rust_(programming_language) //en.wikipedia.org/wiki/Nim_(programming_language) https://en.wikipedia.org/wiki/Nim_(programming_language) d5573759-691d-4e50-8a2f-88cb349aad28->//en.wikipedia.org/wiki/Nim_(programming_language) //en.wikipedia.org/wiki/Julia_(programming_language) https://en.wikipedia.org/wiki/Julia_(programming_language) d5573759-691d-4e50-8a2f-88cb349aad28->//en.wikipedia.org/wiki/Julia_(programming_language) //en.wikipedia.org/wiki/Lisp_(programming_language) https://en.wikipedia.org/wiki/Lisp_(programming_language) d5573759-691d-4e50-8a2f-88cb349aad28->//en.wikipedia.org/wiki/Lisp_(programming_language) 2a07e4ea-610b-4c9a-bb84-d961fb2450e5 Code and Coffee Book Club 2a07e4ea-610b-4c9a-bb84-d961fb2450e5->d5573759-691d-4e50-8a2f-88cb349aad28