《Purely Functional Data Structures》简介:

Most books on data structures assume an imperative language such as C or C++. However, data structures for these languages do not always translate well to functional languages such as Standard ML, Haskell, or Scheme. This book describes data structures from the point of view of functional languages, with examples, and presents design techniques that allow programmers to develop their own functional data structures. The author includes both classical data structures, such as red-black trees and binomial queues, and a host of new data structures developed exclusively for functional languages. All source code is given in Standard ML and Haskell, and most of the programs are easily adaptable to other functional languages. This handy reference for professional programmers working with functional languages can also be used as a tutorial or for self-study.

《Purely Functional Data Structures》摘录:

fun insert (x, s) = let fun ins E = T (R, E, x, E) | ins (s as T (color, a, y, b) = if x < y then balance (color, ins a, y, b) else if x > y then balance (color, a, y, ins b) else s val T (_, a, y, b) = ins s (* guaranteed to be non-empty *) in T (B, a, y, b) end

《Purely Functional Data Structures》目录:

1. Introduction
2. Persistence
3. Some familiar data structures in a functional setting
4. Lazy evaluation
5. Fundamentals of amortization
6. Amortization and persistence via lazy evaluation
7. Eliminating amortization
8. Lazy rebuilding
9. Numerical representations
10. Data-structural bootstrapping
11. Implicit recursive slowdown
Appendix: Haskell source code
· · · · · ·