Pre-West Prep: Gary Fredericks

Talk: Purely Random
Gary Fredericks' talk at Clojure/West is about a functional approach to generating random numbers.
Background
Random number generation (RNG) is typically achieved by using mutable state. And of course, that means they're not great for parallel processing, let alone being generally harder to reason about.
An immutable random number generator returns the next random bytes and a new generator for the next number. A splittable random number generator adds a new function called split
, which takes a generator and returns two new generators. It lets you guarantee that the same numbers are generated every time regardless of interleaving.
Haskell's Quickcheck uses splittable random number generators. The talk description states that Clojure's test.check, which is based on Quickcheck, would benefit from splittable random number generators, presumably by allowing for concurrency.
I found an interesting paper about an efficient implementation of Splittable RNGs. Also, the dunaj-project has some interesting work in this area, using java.util.SplittableRandom
(Java 8) and Transducers.
About Gary Fredericks
This post is one of a series called Pre-West Prep, which is also published by email. It's all about getting ready for the upcoming Clojure/West, organized by Cognitect. Conferences are ongoing conversations and explorations. Speakers discuss trends, best practices, and the future by drawing on the rich context built up in past conferences and other media.
That rich context is what Pre-West Prep is about. I want to enhance everyone's experience at the conference by surfacing that context. With just a little homework, we can be better prepared to understand and enjoy the talks and the hallway conversations.
Clojure/West is a conference organized and hosted by Cognitect. This information is in no way official. It is not sponsored by nor affiliated with Clojure/West or Cognitect. It is simply me (and helpers) curating and organizing public information about the conference.