Thinking about functional programming | Lobsters