^ My ClojuTRE 2018 talk
An experience report of using Clojure to implement a novel graph algorithm.
I go over the algorithm, then dive into optimization techniques like choice of data representation, using transient variants of persistent data structures, using macros to inline computations, benchmarking and implementing our own memoization.
I discuss examples of using generative/property-based testing both at the unit and algorithm levels, turning a recursive algorithm into an iterative one and “unrolling” recursion.
15 September 2018