これは公式の答えではありませんが、私のテストとClojureDocsを見に基づいています。
dissocのアリティは、あなたは一つの引数は、マップに渡すことができることが含まれます。この場合、キー/値はマップから削除されません。
(def test-map {:account-no 12345678 :lname "Jones" :fnam "Fred"})
(dissoc test-map)
{:account-no 12345678, :lname "Jones", :fnam "Fred"}
assocは、類似していない。つまり、assocを呼び出すにはマップ、キー、値が必要です。
これはなぜこのように設計されたのかは別の問題です。その情報で回答が得られない場合は、私が願っています - 奨励金を提案するか、ClojureのGoogleグループに進み、質問。
ここにソースがあります。
(defn dissoc
"dissoc[iate]. Returns a new map of the same (hashed/sorted) type,
that does not contain a mapping for key(s)."
{:added "1.0"
:static true}
([map] map)
([map key]
(. clojure.lang.RT (dissoc map key)))
([map key & ks]
(let [ret (dissoc map key)]
(if ks
(recur ret (first ks) (next ks))
ret))))
'(連想は、{})'したがって、それは許可されていない、意味をなさない。 – dsm
'(dissoc {})'もそうではないことに注意してください。 – dsm
私の主張は、どちらも意味をなさない、あるいはどちらも意味をなさないことです。 1つは許可され、もう1つは許可されません(少なくともclojure 1.5.1では)。なぜ私は興味があります。 –