Purely Functional Data Structures
15%
off

Purely Functional Data Structures

By (author)

US$42.48US$49.99

You save US$7.51

Free delivery worldwide

Available
Dispatched from the UK in 2 business days

When will my order arrive?

Description

Most books on data structures assume an imperative language like 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 so that programmers can develop their own functional data structures. It 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 can easily be adapted 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.

show more

Product details

  • Paperback | 232 pages
  • 152.4 x 226.06 x 20.32mm | 385.55g
  • CAMBRIDGE UNIVERSITY PRESS
  • Cambridge, United Kingdom
  • English
  • 0521663504
  • 9780521663502
  • 117,258

Review quote

"This book is important because it presents data structures from the point of view of functional languages...a handy reference for professional functional programmers...Most of the programs can easily be adapted to other functional languages. Even C and Java programmers should find implementing these data structures a relatively straightforward process...Programs are physically well structured and readable, and are displayed in boxes. Okasaki has produced a valuable book about functional programming, exploring a wide range of data structures...a significant contribution to the computer science literature." Computing Reviews

show more

Table of contents

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.

show more