1

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"}

4

2 に答える 2