clojure - 是否可以检索定义变量的条件图?

如果我用 defn 定义了一个函数和一个包含 :pre:post 形式的条件映射,我该如何检索它状况图?我注意到

(meta #'fn-name) 

不包含条件图。我专门寻找 :pre 条件(以便推导出与它们等效但不断言的谓词)。除了遍历函数体寻找 assert 之外,还有什么方法可以恢复它们吗?

最佳答案

不幸的是,在处理完 fn 宏之后,它们并没有存储在任何地方。它们作为断言直接添加到函数的 body 中。你可以查看the relevant source lines in fn .

作为变通方法,您可以编写自己的 defn 变体,它获取 :pre:post 条件并将它们存储为元数据。

https://stackoverflow.com/questions/23313036/

相关文章:

build - 不安全代码需要指定 `unsafe` 命令行选项 Monodevelop 4.0.1

shell - 将所有第二层 mp3 递归转换为第三层并更新 ID3

c++-cli - '^' 与 Cpp 中的类名的含义

angularjs - ng-grid cellTemplate 问题与单元格的背景颜色

sql-server - Visual Studio 旗舰版 2013 : Server Explo

eclipse - org.eclipse.xtext.resource.FileNotFoundO

google-maps - 嵌入式谷歌地图与 API V3

ruby-on-rails - 无法使用 CanCan 从 rails_admin 管理模型

types - InnoSetup : custom setup type - display me

scala - 对重载定义的不明确引用,来自 Java 库