Constructing the Fibonacci sequence in Haskell : <p>I'm a complete beginner with Haskell and just encountered the following terse expression for constructing the Fibonacci sequence:</p>

<pre><code>fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
</code></pre>

<p>I think I understand what each individual piece is doing (<code>:</code>, <code>zipWith</code>, <code>tail</code>), and I know some sort of recursion is happening, but am not quite sure how.</p>
