【发布时间】:2014-12-30 17:35:54
【问题描述】:
这里我主要关注的是 Scala 和 Lisp/Scheme 宏,而不是 C/C++/Obj-C 中的宏
我只是不明白这一点。
我的理解是,宏是用来扩展语言的。但函数也是如此。
我了解由于某些语言限制,有些事情无法干净地实现,因此需要采用宏。但是我看到的很多关于宏的例子似乎是使用普通函数实现起来相当简单的事情。
那么具体的目的是什么?清理宏或其他方式,请有人赐教。如果可能,请提供一些可以在宏中完成的示例代码,但用普通函数是不可能/很难做到的。
【问题讨论】: