Parsing string into hash-map with 2D coordinates as keys
Since there is no answers, I'll post my new version of code:

(defn line-&gt;cells
  "Converts string with cells to sequence of maps of Points
  It is str-&gt;cells helper, so it requires y argument."
  [str-&gt;value ^Long y ^String line]
  {:pre [(re-matches #"^((?:^| )(?:.+?| )(?= |$))+$" line)]}
  (map-indexed
    (fn [x value] {(Point. x y) (str-&gt;value value)})
    (str/split line #" ")))

(defn str-&gt;cells
  "Converts string with cells separated with
  delimiter and new lines to Points hash map"
  [^String s str-&gt;value]
  {:pre [(re-matches #"^((?:^|\s)(?:.+?| )(?=\s|$))+$" s)]}
  (-&gt;&gt; s
       (str/split-lines)
       (map-indexed (partial line-&gt;cells str-&gt;value))
       (flatten)
       (into {})))