I thought it would be a good exercise to write an interpreter for an imperative language. But then, in order to give it conventional infix syntax, I got tangled up in writing a parsing engine instead.
So after 3½ hours I have... a partly working backtracking recursive descent parsing engine. And as usual I wish I had started with the backend, using JSON or S-expressions or Forth words as the frontend syntax until I had a system working.