欢迎!有关本平台的工作方式,请参阅关于页面获取更多信息。
test.check 为一阶类型提供了生成器,但并未为函数提供。
在原始的 QuickCheck 中,有另一个类型类("Arbitrary")处理函数。
如果我实现了这个并提交补丁,它有可能被包含在内吗?
背景:我在这写了我的 Clojure QuickCheck 克隆
https://bitbucket.org/sperber/deinprogramm.quickcheck
这具有库和函数生成器,但并非包含 test.check 的所有功能。
我正在考虑是继续维护我的 QuickCheck 克隆还是而是为 test.check 做贡献,所以如果您能提供反馈,我将不胜感激。
评论者:reiddraper
我非常希望有一个关于这个功能的补丁!你愿意先写一个快速实现提案吗?这样我们可以在查看代码之前解决任何架构细节。
评论者:sperber
你愿意以我的 QuickCheck 克隆作为起点吗?其总体实现方法与你的非常相似,所以我想你会觉得非常舒适。
但是,它引入了一种与生成器不同的类型——"任意",对应于 Haskell 代码中的 "Arbitrary' 类型类。对 "test.check'" 进行这样的修改将改变 API,所以也许在那里,"Generator'" 类型应该通过一个可选的 "transformer'" 字段扩展。
当然,我已经稍微浏览过它了,但还需要更仔细地阅读。你的实现是如何处理打印(显示)函数的?函数会缩小吗?你看到过(链接:http://dl.acm.org/citation.cfm?id=2364516 文本:Claessen 的《显示和缩小函数》)了吗?
是的。我还没有做,但这将在我的列表上。鉴于函数在Clojure中是对象,我认为打印应该比Haskell更容易一些。