Я проверял производительность списков F # и массивов. С учетом кода:
let list = [ 1.. 100000 ]
for i in 1 .. 100 do ignore ( list|>List.map(fun n -> n))
let array = [| 1.. 100000 |]
for i in 1 .. 100 do ignore ( array|>Array.map(fun n -> n))
Я бы заподозрил, что оба они будут работать в очень похожее время. На самом деле оказалось, что массивы более чем в 10 раз быстрее: массив занимает 28 мс, а список занимает 346 мс! Почему это? Я понимаю концепцию списка в F # и тот факт, что, например, добавление значений в список или получение подпоследовательности занимает много времени, но в этом коде он просто выполняет итерации по всем элементам, поэтому я думал, что время будет очень сопоставимым.
Тесты в режиме выпуска в Visual Studio 2012 (в режиме Debug в массиве примерно в 5 раз быстрее).