gpt4 book ai didi

SML:如何将元素附加到 SML 中的列表?

转载 作者:行者123 更新时间:2023-12-03 18:46:50 31 4
gpt4 key购买 nike

SML 中是否有允许我附加到列表而无需创建新列表的运算符?例如

我不能这样做:

 [1,2,3]::1

但我可以这样做:
 [1,2,3]@[1]

这很奇怪,因为我必须创建一个包含 1 的列表。有没有更好的方法来做到这一点?

最佳答案

无论哪种方式,您都必须创建一个包含一个列表的列表。 [1,2,3,1]的尾部的尾部的尾部是 [1] .所以如果你有 [1,2,3,1]内存中,你还有[1]内存中的某处。

所以即使有像 [1,2,3] @:: 1 这样的运营商,它不会有什么不同,因为它仍然需要创建一个包含一个列表的列表。

PS:xs @ [x] 的真正问题不是列表的创建,而是它的运行时间在 O(n) 中的事实(与 x :: xs 不同,后者在 O(1) 中)。这也是不可变单链表本质中固有的一个问题,因此无济于事,但这就是为什么您通常应该避免像这样附加到列表的末尾。

关于SML:如何将元素附加到 SML 中的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42148055/

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