Using this book as part of a course? Please let us know!

9.7. Summary#

This chapter has taken a deep dive into some advanced data structures, analysis techniques, and programming patterns. Our goal has been to write correct, efficient, beautiful code. Did we succeed? You can be the judge.

9.7.1. Terms and Concepts#

  • amortized analysis

  • association list

  • associative

  • associative array

  • asymptotic bound

  • asynchronous

  • banker’s method

  • big oh

  • binding

  • brute force

  • bucket

  • caching

  • chaining

  • collision

  • complexity

  • credits

  • cycle

  • delayed evaluation

  • dictionary

  • diffusion

  • direct address table

  • eager

  • efficiency

  • execution steps

  • exponential time

  • force

  • hash function

  • infinite data structure

  • injective

  • input size

  • key

  • lazy

  • load factor

  • map

  • memoization

  • mutable map

  • persistent

  • physicist’s method

  • polynomial time

  • potential energy

  • probing

  • recursive values

  • red-black map

  • resizing

  • serialization

  • set

  • stream

  • thunk

  • worst case performance

9.7.2. Further Reading#

  • More OCaml: Algorithms, Methods, and Diversions, chapters 2 and 11, by John Whitington.

  • Introduction to Objective Caml, chapter 8, section 4

  • Real World OCaml, chapters 13 and 18

  • Purely Functional Data Structures, by Chris Okasaki. Cambridge University Press, 1999.