specljフレームワークを使用したテストから始めます。
(it "turns the string into a hash-map"
(should= {1 "1" 2 "2" 3 "3"}
(format-string "1=1 2=2 3=3")))
次に私のコード:
(:use [clojure.string :only (split)])
(defn format-string [string]
(split string #"\s+"))
現在、format-string
関数は戻り["1=1" "2=2" "3=3"]
、テストは失敗します。私のテストでわかるように、キーと値のペアが=
記号で示されているハッシュマップを返すようにします。
私はいくつかのことを試してみましたが、近づくことができましたが、この変換を行う方法がよくわかりません.
編集
キーは整数ではなく文字列ですが、1つの解決策を考え出しました。
私のコード:
(defn format-board [route]
(let [[first second third] (split route #"\s+")]
(merge
(apply hash-map (split-at-equals first))
(apply hash-map (split-at-equals second))
(apply hash-map (split-at-equals third))
これは を返します{"1" "1" "2" "2" "3" "3"}
。