gpt4 book ai didi

haskell - 为什么会立即添加到列表中?

转载 作者:行者123 更新时间:2023-12-02 14:17:12 26 4
gpt4 key购买 nike

我正在阅读有关列表的 Haskell 教程,它声称:

Watch out when repeatedly using the ++ operator on long strings ... Haskell has to walk through the whole list on the left side of ++. ... However, putting something at the beginning of a list using the : operator (also called the cons operator) is instantaneous.

但是,在我看来,事情应该是相反的。

: 必须遍历列表中的所有元素,因为它需要移动所有索引。另一方面,++ 可以只在列表末尾附加一个新元素并完成它,因此是瞬时的。

对理解这句话有帮助吗?

最佳答案

Haskell 中的列表只是一个单链表。例如,Char 列表可以是 [](空列表),也可以是 c : cs,其中 c 是一个 Charcs 是一个 Char 列表。要在给定 ccs 的情况下生成 c : cs,所有实现所需要做的就是分配一个带有指示 (: ) 以及指针 ccs 的副本。这非常便宜。

关于haskell - 为什么会立即添加到列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33703195/

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