Timeline for What practical problem results from lack of hygienic macros in Clojure?
Current License: CC BY-SA 3.0
5 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| May 25, 2016 at 23:43 | answer | added | Nathan Davis | timeline score: 7 | |
| Jan 12, 2016 at 14:01 | history | tweeted | twitter.com/StackProgrammer/status/686910980119486464 | ||
| Jan 12, 2016 at 5:43 | comment | added | Robert Harvey | Because [Racket's] hygienic macro system has deep knowledge of how your macro works, your macro is extremely well-integrated into the environment: syntax highlighting works correctly, automatic variable renaming works correctly, cross-referencing works correctly, and so do all the other slick [Racket] IDE features. In other words, hygiene doesn't just protect you against simple bugs such as variable capture—it allows your code to formally analyzed by tools that simply could not exist for Common LISP. randomhacks.net/2002/09/13/hygienic-macros | |
| Jan 12, 2016 at 4:37 | comment | added | Robert Harvey | Hygienic macros are macros whose expansion is guaranteed not to cause the accidental capture of identifiers. 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. en.wikipedia.org/wiki/Hygienic_macro | |
| Jan 12, 2016 at 3:56 | history | asked | Alex | CC BY-SA 3.0 |