Overview

appendix B  Further reading

This appendix gathers a selective reading list of papers and books that informed the author’s learning about unusual data structures and algorithms. It is presented as a practical guide rather than a complete bibliography, with many of the referenced works available through the author’s repository of materials. The overall purpose is to point readers toward the original sources behind the techniques discussed throughout the book.

The recommendations span a wide range of topics in functional programming and algorithm design. Early entries focus on list representations and persistent data structures, including Hughes lists, amortized analysis, and finger trees. Other cited works cover cellular automata and HashLife, finite automata and their minimization, combinatorial generation, category theory, register allocation, and several approaches to pretty-printing. Together, these references show how the book connects classic research with modern implementations.

Later suggestions move into more specialized and applied areas such as unification and anti-unification, random variable generation, probabilistic programming with monads, and financial mathematics. The final references highlight probabilistic inference and Bayesian methods used in real systems, including work on automated bug fixing and uncertainty estimation for content moderation. Across all of these topics, the appendix emphasizes that the book’s ideas are rooted in a broad tradition of research, and it encourages readers to explore the original literature for deeper understanding.

FAQ

What is the purpose of Appendix B, “Further reading”?It provides a curated list of books and papers that were useful for learning the arcane data structures and algorithms discussed in the book. The list is not exhaustive, but it points readers to influential and related work.
Where can readers find many of the papers listed in the appendix?Many of the papers can be found at the book’s GitHub repository: https://github.com/ericlippert/FabulousAdventures.
Which references are recommended for Chapter 2?Chapter 2 recommends A Novel Representation of Lists and Its Application to the Function Reverse by Hughes (1984) and Purely Functional Data Structures by Okasaki, including both the 1996 thesis and the 1999 book.
What is the key idea behind Okasaki’s Purely Functional Data Structures?It is described as a deep dive into amortized performance analysis of persistent data structures, covering both the theory and practical design of functional data structures.
Which papers are suggested for learning about finger trees in Chapter 3?Chapter 3 lists A New Representation for Linear Lists by Guibas et al. (1977) and Finger trees: a simple general-purpose data structure by Hinze et al. (2006).
What does the finger tree literature help explain?The appendix notes that finger trees can be used to build deques, priority queues, and other data structures, making them a flexible general-purpose technique.
What resources are recommended in Chapter 5 for finite automata?Chapter 5 includes Applications of Finite Automata Representing Large Vocabularies by Lucchesi et al. (1993), A taxonomy of finite automata minimization algorithms by Watson (1993), and Incremental Construction of Minimal Acyclic Finite-state Automata by Daciuk et al. (2000).
Which references are listed for pretty-printing in Chapter 9?Chapter 9 recommends The Design of a Pretty-printing Library by Hughes (1995), Strictly pretty by Lindig (2000), A prettier printer by Wadler (2003), and A Pretty but Not Greedy Printer by Bernardy (2016).
What topics are covered by the Chapter 10 references?Chapter 10 focuses on unification and anti-unification, including Jacobsen’s Unification and anti-unification (1991), Bulychev et al.’s work on duplicate code detection, Hodor et al.’s comparison of unification algorithms, and Bader et al.’s Getafix on automatically fixing bugs.
Which later chapters mention probabilistic methods and Bayesian modeling?Chapter 12 cites Walker’s 1977 paper on generating discrete random variables, Chapter 14 includes works on probability monads, and Chapter 16 lists papers on the Metropolis-Hastings algorithm and Bayesian networks for uncertainty estimation.

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases
  • renews monthly, pause or cancel renewal anytime

lite $19.99 per month

  • access to all Manning books, including MEAPs!

team

5, 10 or 20 seats+ for your team - learn more


choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • renews monthly, pause or cancel renewal anytime
  • renews annually, pause or cancel renewal anytime
  • Fabulous Adventures in Data Structures and Algorithms ebook for free
choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • renews monthly, pause or cancel renewal anytime
  • renews annually, pause or cancel renewal anytime
  • Fabulous Adventures in Data Structures and Algorithms ebook for free
choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • renews monthly, pause or cancel renewal anytime
  • renews annually, pause or cancel renewal anytime
  • Fabulous Adventures in Data Structures and Algorithms ebook for free