title: What's the purpose of macros?
body: <p>Here my general focus is Scala and Lisp/Scheme macros, not exactly the ones in the C/C++/Obj-C</p>
  
  <p>I just don't see the point.</p>
  
  <p>The way I understand it, is that macros are there to extend the language. But so are functions.</p>
  
  <p>I understand that some things can't be implemented cleanly due to some language limitations, and as such a macro needs to be the way to go. But a LOT of examples I see with macros seem to be things that are fairly simple to implement using normal functions. </p>
  
  <p>So what exactly is the purpose? Clean macros or otherwise, Someone please enlighten me. If possible, please provide some example code of something that can be done in macros, but is impossible/hard to do with normal functions.</p>