lisp宏是什么?

相当于带if while的c宏,有点像cpp的模板元编程吗,还是相当于写编译器的感觉?