Using zippers to handle huge trees › 相关工作
Related work
[#262]
Using zippers to handle huge trees › 相关工作 Related work [#262]
zipper 由 Gérard Huet 提出。JFP 上有一篇论文:G. Huet. The Zipper. J. Functional Programming, 7 (5), Sept 1997, pp. 549--554。
Zippers were invented by Gérard Huet. There is a paper on the JFP
G. Huet. The Zipper. J. Functional Programming, 7 (5), Sept 1997, pp. 549--554.
他在例子中使用了 n 叉树和二叉树。这两者主要的区别在于,在二叉树中,指针的组织方式不同(他的“左”操作在 Baire 中是
(left o up)
)。
(译者按:Baire 是 Diego Olivier Fernandez Pons 开发的 Caml 的数据结构库。)
He uses n-ary trees and binary trees in his examples. The main
difference is that in binary trees the pointers are not organized in
the same way (his 'left' operation is what in Baire is (left o up))
Ralf Hinze 试图为函数指针提供一个通用框架,称之为
网
(你提供数据结构和基本转换,数据结构完成其余的工作)。
Ralf Hinze has tried to give a general framework for functional
pointers named a web (you give your data structure and the basic
transformations and the data structure does the rest)
Ralf Hinze and Johan Jeuring. Functional Pearl: Weaving a Web. Journal of Functional Programming, 11(6):681-689, November 2001。
Ralf Hinze and Johan Jeuring. Functional Pearl: Weaving a Web. Journal
of Functional Programming, 11(6):681-689, November 2001.
这篇文章可以通过 Hinze 的主页在网上获取。在我看来,他的文章并没有真正令人信服,也不是很清楚。
Available on the net via Hinze's home page.
In my opinion his article is not really convincing and not very clear.
一些已经使用 zipper 的库:
所有这些代码都可以在网络上找到。
Several libraries already use zippers
- Zen (Gérard Huet, Caml) uses zippers to handle acyclic automata
minimization
- SML/NJ Standard library (John Reppy) uses zippers to handle deletion
in red-black trees
- MetaPRL (Caml) uses zippers to handle insertion and deletion in
splay and red-black trees
- Grammatical Framework (Aarne Ranta, Haskell) uses zippers to
navigate through n-ary trees.
All this code is available on the web.