A text-based tic-tac-toe game written as a way to experiment with functional programming and persistent data structures in Java 8