Changing the Unchangeable: The Hows and Whys of Immutable Data Structures
summary
Demo shows a Bloxorz solver and a Connect Four UI built on a Hamster-backed matrix gem and an Elm frontend, with the solver implemented as a breadth-first flat_map tree search. Persistent lists are singly-linked; vectors use a persistent bit-partitioned trie that shares nodes so updates copy only a few nodes. These structures are lazy and thread-safe, give cheap diffs and fast immutable updates, and enable time-travel debugging workflows (Redux + Immutable.js, Datomic-style history, hot-reload rewind shown working).
AI-written summary · about
chapters (9)
- 0:00Intro
- 5:22Persistent Data Structures
- 11:14Boxers
- 14:50Tree Search
- 18:01Lazy Algorithms
- 22:37Demonstration
- 26:18Demo
- 28:21Discussion
- 30:54Elm
related talks
26mImmutable Ruby
39mImmutable Ruby
59mImmutable Data Structures in .NET: Why They Matter and How They Work
48mA Helicopter Tour of Purely Functional Data Structures
19mImmutability Matters
40mFunctional Programming For The Anxious Developer
42mTaking inspiration from the functional world
35mPersisting Relations Across Time and Space
