首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >函数式编程:不可变的数据结构效率

函数式编程:不可变的数据结构效率
EN

Stack Overflow用户
提问于 2009-11-02 08:21:45
回答 4查看 2.2K关注 0票数 16

我不明白,FP编译器如何让代码快速处理不可变的数据结构,而不是炸毁堆栈等等。

例如,在树中插入操作,它必须在添加新节点之前复制整个树并返回复制的树,而命令式部分只需要添加一个指向新节点的指针。如果insert操作运行数百万次,将占用大量内存,并且当树更大时,复制将变得越来越慢。FP编译器实际上是如何优化这一点的?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-11-02 08:29:49

您不必复制整个树来进行更改;您可以共享大部分结构。例如,请参阅this blog中的图表,或Clojure上Rich Hickey的this talk (请参阅中途对散列尝试的讨论)。

票数 16
EN

Stack Overflow用户

发布于 2009-11-02 09:49:38

编译器不会真正优化这一点,这是你在编码时必须专门为之编程的东西。在优秀的纯函数式数据结构(bookthesis)中解释了实现这一点的技术。

票数 7
EN

Stack Overflow用户

发布于 2009-11-02 08:29:47

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1658887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档