title: Haskell: Double every 2nd element in list
body: <p>I just started using Haskell and wanted to write a function that, given a list, returns a list in which every 2nd element has been doubled.</p>
  
  <p>So far I've come up with this:</p>
  
  <pre><code>double_2nd :: [Int] -&gt; [Int]
  double_2nd [] = []
  double_2nd (x:xs) = x : (2 * head xs) : double_2nd (tail xs)
  </code></pre>
  
  <p>Which works but I was wondering how you guys would write that function. Is there a more common/better way or does this look about right?</p>