We're going to have a go at the Monad Challenges next month. You'll need some Haskell (or a language with similar capabilities) so this month, we'll take on a less taxing challenge - understanding and implementing Finite State Automata in a functional style.
Finite state automata are a classic idea in computer science and and are able to recognise regular expressions.
If you've read Tom Stuart's "Understanding Computation", we'll be following chapter 3, but implementing in funcional styles instead of in OO ruby. It's a nice problem to try out a new langauge... maybe Haskell!