【发布时间】:2012-05-14 18:51:11
【问题描述】:
我正在尝试在可能包含记录实例的地图上调用clojure.walk/stringify-keys。由于 stringify-keys 是递归的,它会尝试转换我记录中的键(因为(map? record-var) 为真),这会导致错误。有什么方法可以判断一个 var 是否是一个记录而不仅仅是一个 Clojure 映射?一世
我想提供我自己的记录感知的stringify-keys 实现。
stringify-keys 的当前实现导致以下情况:
(use '[clojure.walk :only [stringify-keys]])
(defrecord Rec [x])
(let [record (Rec. "foo")
params {:x "x" :rec record}]
(stringify-keys params))
这会导致以下异常:UnsupportedOperationException Can't create empty: user.Rec user.Rec (NO_SOURCE_FILE:1)
【问题讨论】:
标签: clojure