title: In F# when should I use List.choose and when to use List.filter
body: <p>I have just been doing a CodeWars exercise - "create a function that takes a list of non-negative integers and strings and returns a new list with the strings filtered out".</p>
  
  <p>My solution used List.filter and it failed for one of the edge cases.  So I looked at their solution and it used List.choose - which seemed to pretty much identical to my version except it converted the result to an option before deciding whether to include it in the new list.</p>
  
  <p>I am confused - please can someone explain when it is best to use 'choose' and when it is best to use 'filter'?</p>