衛生宏
外觀
此條目可參照英語維基百科相應條目來擴充。 (2022年8月19日) |
衛生宏(英語:hygienic macro),又稱乾淨宏,是指其擴展保證不會導致意外捕獲標識符的宏。Scheme[1]、Dylan[2]、Rust[3]、Nim和Julia等程式語言都有這一特性。在引入衛生宏之前,Lisp社區有眾所周知的意外捕獲的問題。宏編寫者會使用產生唯一標識符的語言特性(如gensym)或使用混淆的標識符來避免這一問題。衛生宏是對捕獲問題的一種程序化解決方案,集成在宏擴展器本身中。「衛生」這一術語是在Kohlbecker等人1986年的論文中創造的,靈感來自數學中使用的術語。[4]
參考文獻
[編輯]- ^ schemers.org: Documents: Standards: R5RS. schemers.org. [2022-08-19]. (原始內容存檔於2022-08-11).
- ^ Barrett, Kim; Cassels, Bob; Haahr, Paul; Moon, David A.; Playford, Keith; Withington, P. Tucker. A monotonic superclass linearization for Dylan. Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications - OOPSLA '96 (New York, New York, USA: ACM Press). 1996. doi:10.1145/236337.236343.
- ^ Macros and metaprogramming - Rust for the Polyglot Programmer. www.chiark.greenend.org.uk. [2022-08-19]. (原始內容存檔於2021-10-06) (英語).
- ^ Kohlbecker, E.; Friedman, D. P.; Felleisen, M.; Duba, B. Hygienic Macro Expansion (PDF). ACM conference on LISP and functional programming. 1986 [2022-08-19]. (原始內容存檔 (PDF)於2017-08-29).