为什么要尽可能地丢弃宏?

Bel*_*lun 4 macros clojure

不做宏的问题是什么?或者试图避免宏的问题是什么?

我最近看到一些帖子告诉我们放慢宏的使用:DSL!=宏,用函数而不是宏重写代码,开始研究从宏切换到函数......

但这是什么交易?你认为宏将统治世界而你不想要它吗?

宏有什么问题?为什么降低使用率?他们不应该成为扩展语言的方法吗?

mik*_*era 11

我认为更喜欢函数到宏的主要论点是它们在运行时不能作为第一类函数使用,这限制了您使用各种强大的函数编程技术的灵活性.

我个人认为宏仍然是一个非常有用的编程工具,可以让你适当地使用它们 - 即使你能够在编译时进行复杂的代码转换,否则会导致高运行时成本或需要大量不必要的样板代码.

  • 这正是重点:*适当地使用它们*.没有人告诉你要避免宏,但要尽量避免使用宏*. (3认同)
  • +1"因为他们不能作为头等功能",因为我不知道这一点,这是避免它们的真正好理由 (2认同)