Clojure 是否可以检索defn';d变量?
如果我用Clojure 是否可以检索defn';d变量?,clojure,Clojure,如果我用defn定义了一个函数,并且定义了一个包含:pre和:post表单的条件映射,我如何检索该条件映射?我注意到 (meta #'fn-name) 不包含条件映射。我特别寻找:pre条件(以便派生一个与它们等价但不断言的谓词)。除了在函数体中查找asserts之外,还有什么方法可以恢复它们吗?不幸的是,在处理fn宏之后,它们没有存储在任何地方。它们作为断言直接添加到函数的主体。你可以查一下 作为一种解决方法,您可能可以编写自己的defn变体,它可以获取:pre和:post条件,并将它们存
defn
定义了一个函数,并且定义了一个包含:pre
和:post
表单的条件映射,我如何检索该条件映射?我注意到
(meta #'fn-name)
不包含条件映射。我特别寻找
:pre
条件(以便派生一个与它们等价但不断言的谓词)。除了在函数体中查找assert
s之外,还有什么方法可以恢复它们吗?不幸的是,在处理fn
宏之后,它们没有存储在任何地方。它们作为断言直接添加到函数的主体
。你可以查一下
作为一种解决方法,您可能可以编写自己的
defn
变体,它可以获取:pre
和:post
条件,并将它们存储为元数据。谢谢DaoWen!我在fn
中看到了这些行,但不知怎的,我希望defn会有额外的机器来存储它们。我猜添加它们会增加内存开销,这就是为什么不保留它们。感谢您提出的解决方案!