根据F#的list
文档:
" F#中的列表是一个有序的,不可变的同类型元素系列 "
" F#中的列表被实现为单链表 "
为什么不在内存中连续实现它,因为它是不可变的,因此具有固定的大小?为什么要使用F#list
而不是F#array
?
它们有不同的用途,例如:
您可以在 F# 中使用数组来存储需要以相对较低的开销随机访问的大量数据。
当您需要通过递归函数的迭代来累积某些内容时,F# 中的列表非常有用。数组在这里表现不佳,因为它们具有固定的大小。
使用list
,您可以在 O(M) 时间内将 ListM(大小 M)的所有元素添加到 ListN(大小 N)。同样,您可以在 O(1) 时间内将单个元素添加到任何列表中。