Strange Loop

2009 - 2023

/

St. Louis, MO

Functional Vectors, Maps, and Sets in Julia

Julia is positioned as a fast dynamic language for technical computing. Perhaps less obvious is that it's just a hair's breadth away from being a practical functional language, featuring first-class generic functions, expressive types, and multiple dispatch. What it's missing is a set of functional data structures, but we're going to change that.

This talk will build up an implementation of a functional and persistent vector, hash map, and set. I'll show how the three can be built on top of the same fundamental data structure, and how a few simple optimizations can lead to big performance wins. There will be code.

Zach Allaun

Zach Allaun

Hacker School

Zach dropped out of college and into Hacker School, where he works as a facilitator hacking on whatever he fancies. Lately that's been Julia, though in the past it's been Clojure or Python.