-1

私は4clojureに取り組んでいますが、問題 156 (マップのデフォルト)に行き詰まっています。

以下の関数がフラット マップを返さない理由がわかりません

((fn [d k] (for [i k :let [r {}]]
    (conj r [i d])))
    [:a :b] [:foo :bar])

現在の結果は({:foo [:a :b]} {:bar [:a :b]})

しかし、私は期待した{:foo [:a :b], :bar [:a :b]}

4

3 に答える 3

2

または、式でキーと値のペアを生成し、関数forを使用してそれらすべてをマップに押し込むこともできます。into

((fn [d k] (into {} (for [i k] [i d])))
  [:a :b] [:foo :bar])
; => {:foo [:a :b], :bar [:a :b]}
于 2013-09-16T01:49:52.907 に答える