我想在閉包中使用散列映射,因爲我有一個for循環,將已排序的字符串和未排序的字符串傳遞給我的函數,我想要做的是兩個if哈希地圖上發言Clojure散列映射查詢鍵和值
1 if語句是
if hash-map doesnt contain string "x"
put x in a new hash-set
第二if語句是
if hash-map key "x" value is not equal to "y"
remove "x" from hash-set
這是我迄今爲止
(defn transform3 [y]
(let [x (sort-string (str/lower-case y))
my-hash-map (hash-map)
hashmap2 (hash-map)]
(if-not (contains? my-hash-map x)
(my-hash-map x, y)
(hashmap2 y))
(if-not (get hash-map x) y)
(dissoc hashmap2 x)
;;remove from hash-set to do...
))
如果聲明允許我使用諸如「get」之類的語句包含「put」等等,我該怎麼辦?
如果您將我的答案納入問題中,那麼我的答案不再有任何意義。我可能會最終刪除它。我很確定這不是應該如此工作的方式。 –
你應該接受我的答案,然後撰寫另一個新的問題。你也可以閱讀'assoc'和'dissoc'。還有'conj'。然後集合和地圖之間的區別。很可能你應該在你的問題中使用一套。 –