8 Advanced list handling
- Speeding list processing with memoization
- Composing
List
andResult
- Implementing indexed access on lists
- Unfolding lists
- Automatic parallel list processing
In chapter 5, you created your first data structure, the singly linked list. At that point, you didn’t have all the techniques needed to make this structure a complete tool for data handling. One particularly useful tool you were missing was some way to represent operations producing optional data or operations producing an error.
In chapters 6 and 7, you learned how to represent optional data and errors. In this chapter, you’ll learn how to compose operations that produce optional data or errors with lists. You also developed some functions that were far from optimal, such as length, and I said that you’d eventually learn more efficient techniques for these operations. In this chapter, you’re going to learn how to implement these more efficient techniques. You’ll also learn how to automatically parallelize some list operations in order to benefit from the multicore architecture of today’s computers.