Clojure: работа с java.util.HashMap идиоматическим способом Clojure

у меня естьjava.util.HashMap объектm (возвращаемое значение от вызова к коду Java) и я 'Я хотел бы получить новую карту с дополнительной парой ключ-значение.

Еслиm были карты Clojure, я мог бы использовать:

(assoc m "key" "value")

Но пытаясь это наHashMap дает:

java.lang.ClassCastException: java.util.HashMap не может быть приведен к clojure.lang.Associative

Не повезло сseq или:

(assoc (seq m) "key" "value")

java.lang.ClassCastException: clojure.lang.IteratorSeq не может быть приведен к clojure.lang.Associative

Единственный способ, которым мне удалось это сделать, - это использоватьHashMapс собственнымиputно это возвращаетvoid поэтому я должен явно вернуть:m

(do (. m put "key" "value") m)

Это не идиоматический код Clojure, плюс ям модификацииm вместо создания новой карты.

Как работать сHashMap в более Clojure-иш-образе?

Ответы на вопрос(4)

Ваш ответ на вопрос