   [map key f & args]
   (assoc map key
          (apply f (get map key) args)))
-
 
 ;; Conditional update operations
 ;;--------------------------------------------------------------------

          (for [[k v] m]
            (map-entry k (apply f k v args))))))


(defn map-keys-and-vals
  "Create a new map from m by calling function f on each key & each
  value to get a new key & value"

       [k (apply f v args)])
     (into {})))

(defn map-entry [x y]
  [x y])

(defn map-keys
  "Create a new map from m by calling function f on each key to get a
