Purely Functional Data Structures
Cambridge University Press, 13. lip 1999. - Broj stranica: 220
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.
Što ljudi govore - Napišite recenziju
Na uobičajenim mjestima nismo pronašli nikakve recenzije.
12 Strict vs Lazy Evaluation
22 Binary Search Trees
23 Chapter Notes
Some Familiar Data Structures in a Functional Setting
72 RealTime Queues
73 Binomial Heaps
74 BottomUp Mergesort with Sharing
75 Chapter Notes
82 Global Rebuilding
83 Lazy Rebuilding
32 Binomial Heaps
33 RedBlack Trees
34 Chapter Notes
43 Chapter Notes
Fundamentals of Amortization
53 Binomial Heaps
54 Splay Heaps
55 Pairing Heaps
56 The Bad News
57 Chapter Notes
Amortization and Persistence via Lazy Evaluation
62 Reconciling Amortization and Persistence
63 The Bankers Method
64 The Physicists Method
65 Lazy Pairing Heaps
66 Chapter Notes
84 DoubleEnded Queues
85 Chapter Notes
91 Positional Number Systems
93 Skew Binary Numbers
94 Trinary and Quaternary Numbers
95 Chapter Notes
101 Structural Decomposition
102 Structural Abstraction
103 Bootstrapping To Aggregate Types
104 Chapter Notes
Implicit Recursive Slowdown
112 Catenable DoubleEnded Queues
113 Chapter Notes
Haskell Source Code
Ostala izdanja - Prikaži sve
a x a amortized cost amortized data structures APPENDING banker's method binary numbers binary random-access lists binary search trees binomial heaps binomial tree bootstrapped catenable constructor D.Queue dappendL datatype DEEP f deleteMin deque digit Elem Elem.leq Elem.T element end Figure end fun error empty exec exec2 execute Exercise findMin FINITEMAP force fun head fun insert fun isEmpty fun lazy fun tail functor global rebuilding implementation incremental insTree int x a invariant isEmpty _ lazy evaluation LEAF leftist heaps lenf f lenr lenfm list x a list lookup lookupTree memoization mergePairs Mergesort node number of debits O(log operation pairing heaps persistence persistent data structures physicist's method raise EMPTY red-black trees removeMinTree reverse RList root rotation schedule segment segs SHALLOW shared cost signature skew binary Sortable splay trees Standard ML stream struct susp suspension tree of rank TRIE uncons unconsTree unshared cost update val empty
Stranica 208 - Tyng-Ruey Chuang and Benjamin Goldberg. Real-time deques, multihead Turing machines, and purely functional programming. In Conference on Functional Programming Languages and Computer Architecture, pages 289-298, June 1993.
Stranica 211 - Robert Hood. The Efficient Implementation of Very-High-Level Programming Language Constructs. PhD thesis, Department of Computer Science, Cornell University, August 1982. (Cornell TR 82-503).
Stranica 208 - F. Warren Burton. An efficient functional implementation of FIFO queues. Information Processing Letters, 14(5):205-206, July 1982.
Stranica 211 - Rob R. Hoogerwoord. A symmetric set of efficient list operations. Journal of Functional Programming, 2(4):505-513, October 1992. 13. John Hughes. A novel representation of lists and its application to the function "reverse".
Stranica 207 - F. Warren Burton and Robert D. Cameron. Pattern matching with abstract data types. Journal of Functional Programming, 3(2): 171 - 190, 1993.