I'd have used

  (funcall (ecase operation (:add '+) (:subtract '-) (:multiply '*)) result value)
instead, looks funkier =)

Oh yeah, way more fun :) I just kinda saw CL in the Clojure and was trying to make it look like that.