title: Why does F# prefer lists over arrays?
body: <p>I'm trying to learn F# and was watching a video when something odd (at least, to me) came up. The video in question is <a href="http://www.youtube.com/watch?v=sxL9sfVz4IE&amp;feature=related" rel="noreferrer">here</a> and the relevant part starts at 2:30 for those interested. But basically, the guy says that F# makes it awkward to work with arrays and that the designers did so on purpose because lists are easier to "prepend and append".</p>
  
  <p>The question that immediately sprang to mind: isn't easy prepending and appending something that should be frowned upon in an immutable language? Specifically, I'm thinking of C#'s Lists where you can do something like <code>List.Add(obj);</code> and mutate the list. With an array you'd have to create an entirely new array, but that's also what would need to happen in an immutable language.</p>
  
  <p>So why do the designers of F# prefer lists? What is the fundamental difference in an immutable environment between a list and an array? What am I missing? Are lists in F# really linked lists?</p>