title: F# Cutting a list in half using functional programming
body: <p>I am trying to input a list into the function and it send me a list with the first half of the elements taken away using f# with the below recursion but I keep running into a base case problem that I just cant figure out.  any thoughts?  I am using the second shadow list to count how far I need to go until I am half way into the list (by removing two elements at a time)</p>
  
  <pre><code>let rec dropHalf listToDrop shadowList = 
      match shadowList with
      | [] -&gt; listToDrop
      | shadowHead2::shadowHead1::shadowTail -&gt; if shadowTail.Length&lt;=1 then listToDrop else 
                                      match listToDrop with 
                                      |[] -&gt; listToDrop
                                      |listToDropHead::listToDropTail -&gt; dropHalf listToDropTail shadowTail
  </code></pre>