title: Why is functional programming good?
body: <p>I've noticed that there are certain core concepts that a lot of functional programming fanatics cling to:</p>
  
  <ul>
  <li><p>Avoiding state</p></li>
  <li><p>Avoiding mutable data</p></li>
  <li><p>Minimizing side effects</p></li>
  <li><p>etc...</p></li>
  </ul>
  
  <p>I'm not just wondering what other things make functional programming, but why these core ideas are good? Why is it good to avoid state, and the rest?</p>