title: In Julia, why is @printf a macro instead of a function?
body: <p>In Julia, the syntax to print a formatted string is as follows:</p>
  
  <pre><code>@printf("Hello %d\n", 5)
  </code></pre>
  
  <p>Why is <code>@printf</code> a macro instead of a function? Is it so that it can accept a varying number of arguments?</p>