Simplify, taking advantage of :pre, map key lookup, apply str

I learned that :pre allows you to define some pre-conditions for your
function, which if they fail will raise an assertion error. I also
learned that you don't need to use get to get the value for a key in a
map, you can just do (map key). Also learned about the built-in str
function which will concatenate the stringified versions of the
arguments. And you can use apply to call it with a vector of arguments.

I learned all this stuff from looking at another user's solution and
then looking things up in the docs. Very helpful!