Safe Mutation in PracticeExplores safe mutation in functional programming through lazy evaluation, object invariants, and efficient caching functions.
A Closer Look at ListsCovers list construction, methods, and implementations, including exercises and complexity analysis.