i wrote an immutable-programming-based tetris a couple days ago, partly out of boredom and partly as an exercise. (all functions take a piece and/or a board, apply some change, and return the new piece and/or board.) it's an interesting style to work in after a decade or so of unmitigated imperative coding.
no subject