title: Process Haskell list from right to left keeping origin order
body: <p>Need increment every second item starting from the right in Haskell list but keeping origin order (e.g. <code>reverse</code> is not a case). For example:</p>
  
  <pre><code> f [1, 2, 3] --  [1, 3, 3]
  
   f [1, 2, 3, 4] -- [2, 2, 4, 4]
  </code></pre>
  
  <p>I've tried something like a following:</p>
  
  <pre><code>fc ([]) = []
  fc (x:[]) = [x]
  fc (x:[y]) = [x+1,y]
  fc( x:xs ) = fc [x] : ( fc xs ) -- this line is wrong
  </code></pre>
  
  <p>p.s. Obviously I could reverse (but prefer to understand original task) the list twice and apply something like:</p>
  
  <pre><code>helper (x:y:tail) = [x, y+1] ++ tail
  fc x = reverse (helper (reverse x) )
  </code></pre>