¿Cuáles son algunos lenguajes que incorporan macros higiénicas?
Las macros higiénicas son macros cuya expansión está garantizada para no causar la captura accidental de identificadores. Son una característica de lenguajes de programación como Scheme, Dylan, Rust, Nim y Julia. El problema general de la captura accidental era bien conocido en la comunidad Lisp antes de la introducción de las macros higiénicas. Los escritores de macros utilizaban características del lenguaje que generaban identificadores únicos (por ejemplo, gensym) o utilizaban identificadores ofuscados para evitar el problema. Las macros higiénicas son una solución programática al problema de la captura que se integra en el propio expansor de macros. El término "higiene" se acuñó en el artículo de Kohlbecker et al. de 1986 que introdujo la expansión higiénica de macros, inspirándose en la terminología utilizada en matemáticas.
Algunos lenguajes que incorporan macros higiénicas son Scheme, Dylan, Rust, Nim y Julia.
What are some languages that feature hygienic macros?
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,[1] Dylan,[2] Rust, Nim, and Julia. The general problem of accidental capture was well known within the Lisp community prior to the introduction of hygienic macros. Macro writers would use language features that would generate unique identifiers (e.g., gensym) or use obfuscated identifiers in order to avoid the problem. Hygienic macros are a programmatic solution to the capture problem that is integrated into the macro expander itself. The term "hygiene" was coined in Kohlbecker et al.'s 1986 paper that introduced hygienic macro expansion, inspired by the terminology used in mathematics.[3]
Some languages that feature hygienic macros include Scheme, Dylan, Rust, Nim, and Julia.