~/talk

Purely Functional Data Structures

Talkat GeeCON 2019 · 2019-05-15..05-17· [functional-programming]
slides:none on file

Persistent immutable collections minimize copying by structural sharing and often match mutable performance with clever designs. Practical examples: a singly linked list gives O(1) prepend but O(n) append; the bankers queue (two-list) yields amortized O(1) enqueue/dequeue but occasional O(n) reversals; a Hash Array Mapped Trie (HAMT) uses 32-way branching to keep lookup depth ≈6 hops so lookups are fast and memory is kept down with bitmaps. Real trade-offs: GC pressure (authors report ~1 GB/s garbage), cache locality, and central contention versus fine-grained locking in mutable concurrent maps.

AI-written summary · about

  1. 0:00Introduction
  2. 1:17Immutability trends and costs
  3. 4:16Benefits of immutability
  4. 7:06Defining immutability
  5. 9:17Thread safety and immutability
  6. 10:20Designing immutable APIs
  7. 13:11Persistent data structures
  8. 15:44The unicorn myth
  9. 16:28String and substring optimizations
  10. 18:56Designing persistent classes
  11. 19:18Persistent linked lists
  12. 21:47Thread safety with persistent structures
  13. 23:54Concurrency trade-offs
  14. 26:02Persistent sets and trees
  15. 27:48Persistent queues
  16. 30:39Finger trees for queues
  17. 33:55Persistent maps and tries
  18. 36:50Hash array mapped tries
  19. 39:06Time complexity of tries
  20. 41:14Trade-offs in persistence
  21. 42:16Key to efficiency
  22. 43:39Choosing between mutable and immutable
  23. 44:00Further reading and research
  24. 45:03Q&A session
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.