有谁知道C++数据结构库提供熟悉的STL结构的功能性(a.k.a.不可变,或FP意义上的“持久性”)等价物吗? “功能”我的意思是对象本身是不可变的,而对这些对象的修改返回与适当的父对象共享内部相同内部的新对象。理想情况下,这样的库类似于STL,并且可以和Boost.Phoenix一起工作(警告 - 我没有真正使用Phoenix,但据我所知它提供了很多算法,但没有数据结构,除非懒惰计算的变化到现有的数据结构计数 - 是吗?)C++中的函数式数据结构
21
A
回答
3
1
这不仅仅是一个详细的答案,而且Bartosz Milewski似乎在这方面做了很多工作。参见,例如:
http://bartoszmilewski.com/2013/11/13/functional-data-structures-in-c-lists/
看起来像他在这里实现了很多的算法从Okasiki的书纯功能性数据结构:
https://github.com/BartoszMilewski/Okasaki
注:我还没有尝试过,但它们是我在FC++之外看到的第一个C++持久数据结构。
希望我会尽快尝试。
+0
他们似乎缺少重要的部分......就像删除 – Michael 2014-10-23 03:10:43
相关问题
- 1. 结构中的函数? C++
- 2. C++中的数据结构
- 3. Clojure数据结构函数
- 4. C数据结构
- 5. 函数返回结构(C)
- 6. C++:结构中的成员函数
- 7. haskell中的CPU仿真,函数式数据结构和拉链?
- 8. 函数式编程中的大型数据结构
- 9. 具有数据结构指针参数的C函数
- 10. 使用函数指针结构的C中的包装函数
- 11. ANSI C中树数据结构C
- 12. C#结构中的无参数构造函数6
- 13. 在C++构造函数中分配结构数组的存储
- 14. C++函数参数和结构错误
- 15. C++ - 结构...函数参数问题
- 16. C#中的动态数据结构
- 17. C中的标准数据结构库?
- 18. C#中的老化数据结构
- 19. C++中的递归数据结构
- 20. C++中的地图数据结构
- 21. asp.net/c#中的数据结构问题#
- 22. C#中的多维数据结构#
- 23. DOM中的数据结构像ANSI C
- 24. Objective C中的树数据结构
- 25. C++数据结构堆
- 26. 特里数据结构C
- 27. C数据结构错误
- 28. C++数据结构声明
- 29. C数据结构库
- 30. C++数据结构大O
您是否可以通过按值传递和返回所有对象来大致获得所需的效果? – 2010-05-03 10:09:28
只有我能承受性能和内存开销。功能数据结构的诀窍是它们尽可能共享内部。这是安全的,因为对象是不可变的,并且比仅仅在大数据结构上返回值要少得多的内存和处理器。 – drg 2010-05-03 10:14:54
我在http://portal.acm.org/citation.cfm?id=1596591共同撰写经验报告时,对同一个问题产生了真正的兴趣。我当时的结论是,你真的需要垃圾收集:持久结构的优势在于共享,但是在共享的存在下,不再有任何单一节点的明确所有权,因此某种中央当局(GC)必须决定哪些节点可以回收。对于您的应用程序来说,节点只被分配并且永远不会被释放并不重要。 – 2010-05-03 10:28:38