~/talk

Extreme Cleverness: Functional Data Structures in Scala

Talkat Clojure/conj 2011 · 2011-11-10..11-12· [scala]
slides:none on file

Implements six persistent structures in Scala with working code on GitHub and concrete performance claims: singly linked lists with structural sharing for O(1) head, Banker's queues with amortized O(1) enqueue/dequeue, red‑black trees for O(log n) associative ops, two‑three finger trees that offer amortized O(1) ends but are “ridiculously slow” in practice, and a bitmapped vector trie (Vector) with log32 n ≈ 7 depth requiring at most 7 array derefs and 14 bit ops, and measured ~2–2.5× slower than java.util.ArrayList. JVM cache locality dominates real performance.

AI-written summary · about

  1. 0:00Introduction
  2. 1:20Overview
  3. 3:05Functional Data Structures
  4. 4:44Sequential Data Structures
  5. 8:28Bankers Queue
  6. 9:49Bakers Queue
  7. 15:03Double Ended Queue
  8. 20:34Complexity bounds
  9. 21:06Balanced binary search
  10. 22:49Balanced red black tree
  11. 27:24Complex bounds
  12. 30:54Case
  13. 34:07locality of reference
  14. 38:24References
~/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.