Meaning of Lazy Evaluation in Javascript : <p>in the Boilerplate I am using for a React Redux project I came across this comment in the code:</p>

<blockquote>
  <p>This is a thunk, meaning it is a function that immediately returns a
  function for lazy evaluation. It is incredibly useful for creating
  async actions, especially when combined with redux-thunk!</p>
</blockquote>

<p>Now, if I understand this correctly, lazy evaluation is the process of returning a function. What is the purpose of returning a function though, and how is this great for creating async actions?</p>

<p><em>Oh also</em>, is a thunk just a function?</p>
