gpt4 book ai didi

f# - 为什么将不可变列表实现为链表?

转载 作者:行者123 更新时间:2023-12-04 20:39:47 24 4
gpt4 key购买 nike

根据 F# 的 list documentation :

  • “F# 中的列表是有序的、 不可变的 系列相同类型的元素”
  • “F# 中的列表被实现为 单向链表

  • 为什么不在内存中连续实现它,因为它是不可变的,因此具有固定的大小?为什么要使用 F# list而不是 F# array ?

    最佳答案

    它们用于不同的目的,例如:

    您在 F# 中使用数组来存储需要以相对较低的开销随机访问的大量数据。

    当您需要在递归函数的迭代中积累一些东西时,F# 中的 List 很有用。数组在这里不能很好地发挥作用,因为它们的大小是固定的。

    list ,您可以在 O(M) 时间内将 ListM(大小 M)的所有元素添加到 ListN(大小 N)。同样,您可以在 O(1) 时间内将单个元素添加到任何列表中。

    关于f# - 为什么将不可变列表实现为链表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28530913/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com