Much of my education and my career has focused on finding “the answer” to problems. However, in the last fifteen years or so, I have discovered Bayes’ theorem. This theorem allows not only a true-false answer, but a probability: 70% true and 30% false.

As a very young man, I discovered a book on the atom in the library. My reaction to this book was, “Everything is made of atoms? That is amazing! I must understand more.” I began pursuing and eventually gained a Master’s Degree in Physics.

In my first job in Physics, I made a similar discovery. I took a course from MIT based on Scheme. I had a similar reaction. “Scheme only has seven primitives? I have to know more.” Eventually, I discovered Clojure: a mixture of the simplicity of scheme with practicality.

I did not quite have the same reaction when I encountered Bayesian ideas, but as I read the book, Probability Theory - The Logic of Science by E. T. Jaynes, I felt a similar “click.” As I read, I recognized the same logic employed by my physics professors as they taught me the details of physics.

Bayes’ theorem provides a mathematical treatment of uncertainty; as a physicist, I like mathematical treatments. But by providing a probabilistic model of “the answer,” Bayes’ theorem allows us not only to improve that answer with additional data but also to make better decisions by consider possibilities beyond “Yes” or “No” exclusively.

I would love to tell you that I have all the answers about applying Bayes’ theorem to problems, but I do not. However, I believe that we can learn together not merely the mathematics of Bayes’ theorem but its application to decisions today. And we can use Clojure, a language we love, to “flesh out” our ideas.

My hope is to not only learn how to use Clojure to solve problems using Bayesian techniques, but to teach along the way so that we can all grow. Come with me to find out how to effectively use Clojure to calculate “70% true and 30% false” answers to the problems we face in our uncertain world.