Simplificador de expressão aritmética no Clojure

Quero criar um simplificador de expressões aritméticas no Clojure, e sou novo nessa linguagem.
Assim, por exemplo:in: "2x + 6y - (12 + (5x - 3y)) + 4" simplified: "- 3x + 9y - 8".

Portanto, minha tentativa é analisar a expressão com regexp no vetor hierárquico de expressões aninhadas como esta:["5x-3y" "12 + <?>" "2x + 6y - <?> + 4"] ;; <?> is evaluated item from previous step e depois avalie-os em sequência.

Estou sentindo que é hack, alguns conselhos seriam úteis.

questionAnswers(0)

yourAnswerToTheQuestion