3
我在地圖中有原子,這可能是也可能不是一個好主意,但重點是我需要去掉原子,以便可以對地圖執行json-str操作,而json-str不能處理原子,所以我寫這個:對地圖進行解剖
(defn deatomize- [m]
(cond
(instance? clojure.lang.Atom m) #(deatomize- @m)
(map? m) (zipmap (keys m) (map #(trampoline deatomize- %) (vals m)))
:else m
)
)
(defn deatomize [m] (trampoline deatomize- m))
這似乎工作,但a)是好的,b)有沒有更好的方法?
給予好評的「地圖中的原子是有點反模式的」 – Bill
謝謝你們全面的回答!我會從中學到很多東西。我對地圖中的原子根本不滿意,所以現在我會找到重新設計東西的方法。恐怕我不能同意關閉括號,但我必須把它們放在一個換行符上,以符合它們同意的功能,否則我會感到困惑。另外,在它們之間添加和刪除線條更容易。 – Hendekagon
我不知道你可以使用像這樣的循環 - 沒有(循環 - 所以可以重複使用任何綁定形式(是像let,loop,defn,fn等術語?) – Hendekagon