我不明白,FP编译器怎么能有不可变的数据结构处理速度快,不炸掉堆栈中的代码等函数式编程:一成不变的数据结构效率
例如,插入操作树,它有在添加新节点并返回复制的树之前复制整个树,而不需要将指针添加到新节点的命令式couterpart。如果插入操作运行数百万次,则会占用大量内存,并且树越大,复制越慢。 FP编译器如何实际优化这个?
我不明白,FP编译器怎么能有不可变的数据结构处理速度快,不炸掉堆栈中的代码等函数式编程:一成不变的数据结构效率
例如,插入操作树,它有在添加新节点并返回复制的树之前复制整个树,而不需要将指针添加到新节点的命令式couterpart。如果插入操作运行数百万次,则会占用大量内存,并且树越大,复制越慢。 FP编译器如何实际优化这个?
如果垃圾收集器正在完成其工作,那么旧数据结构的副本在不再使用时将被收回。
我可以问为什么对这个答案进行投票?假设我想通过一些修改来移动相同的集合并保持功能正常,那么知道GC将收集那些不再使用的部分是不是有帮助? – 2011-02-25 03:01:54
它不以任何方式回答问题。 – 2011-09-03 15:38:38
http://en.wikipedia.org/wiki/Hash_array_mapped_trie – 2013-01-04 02:31:05
http://en.wikipedia.org/wiki/Persistent_data_structure – 2013-01-04 12:20:40
图博客链接已死,如果你可以找到另一个链接,请更新你的答案,谢谢! – 2014-06-11 21:50:06