title: How to pick elements in even index and odd index?
body: <p>I have a list, I want to break the list into two, one with elements in the even indexes, and the other from the odd indexes.</p>
  
  <p><code>breakByIndexes :: [a] -&gt; ([a], [a])</code></p>
  
  <p>For example:</p>
  
  <pre><code>&gt; breakByIndexes ["A", "B", "C", "D"]
  (["A", "C"], ["B", "D"]
  
  &gt; breakByIndexes ["A", "B", "C", "D", "E"]
  (["A", "C", "E"], ["B", "D"]
  </code></pre>
  
  <p>I got a solution like this</p>
  
  <pre><code>breakByIndexes [] = ([], [])
  breakByIndexes [e] = ([e], [])
  breakByIndexes (e:o:xs) =
    let (es, os) = breakByIndexes xs
     in (e : es, o : os)
  </code></pre>
  
  <p>But I'm curious is it possible to implement without using recursion? 
  And is it possible to implement by composing existing functions from <code>Data.List</code>?</p>