根据F#的list
documentation:
“ F#中的列表是一个有序的,不可变的系列相同类型的元素”
“ F#中的列表实现为单链表 ”
为什么不在内存中连续实现它,因为它是不可变的,因此具有固定的大小?为什么要使用F#list
而不是F#array
?
答案 0 :(得分:3)
它们用于不同的目的,例如:
您在F#中使用数组来存储需要以相对较低的开销随机访问的大量数据。
当您需要在递归函数的迭代上累积某些内容时,F#中的List非常有用。阵列在这里不能很好地发挥,因为它们具有固定的大小。
使用list
,您可以在O(M)时间内将ListM的所有元素(大小M)添加到ListN(大小N)。同样,您可以在O(1)时间内将单个元素添加到任何列表中。