This document discusses using Clojure to play the board game Go. It begins by covering the basic rules of Go and qualifications of the author. It then discusses modeling the game as a game tree and approaches to search the tree like minimax, Monte Carlo simulation, and Monte Carlo tree search. The rest of the document discusses implementing a Go simulator in Clojure, including representing the game state incrementally and optimizing performance through techniques like using mutable state and removing layers of indirection.
Related topics: