我有一个哈希表。 我想遍历所有值并根据值的类型替换每个值。如果该值是整数,则将其替换为true
,否则用false
替换。我希望这将返回一个新的哈希表,其中每个值都更新为true或false。
(defn my-function [hash-map]
(loop [hash-map hash-map]
(for [value (vals hash-map)]
(if (= Integer (type value))
(recur (assoc hash-map key true))
(recur (assoc hash-map key false))))))
那样行不通,因为Clojure只能从尾部位置递归,但那是我想要做的一般性思路。有什么有效的方法吗?if-let
和update-in
似乎是潜在的解决方案,但我无法完全理解它们。