欢迎!请查看关于页面以了解该网站是如何工作的更多信息。
test.check 为一阶类型提供生成器,但不是为函数。
在原始的QuickCheck中,一个额外的类型类("Arbitrary")负责处理函数。函数。
如果我实现了这个并提交一个补丁,它可能被包括在内吗?
背景:我在这里写了自己的Clojure QuickCheck克隆
https://bitbucket.org/sperber/deinprogramm.quickcheck
这有自己的归约库和函数生成器,但没有test.check的所有好处。
我正在考虑是否继续维护我的QuickCheck克隆,还是相反地,为test.check做出贡献,因此反馈会受到高度欢迎。
评论者:reiddraper
我非常希望看到这个补丁!你愿意先写一个快速实现建议吗,这样我们可以在查看代码之前处理任何架构细节?
评论者:sperber
你愿意以我的QuickCheck克隆作为起点吗?它的通用实现方式与你的是非常类似的,所以我认为你会感到非常舒适。
但是有一个注意事项,那就是它引入了一个与生成器不同的类型——"arbitrary",这在Haskell代码中对应于"Arbitrary'类型类。在test.check上这样做会改变API,所以也许在那里,应该通过一个可选的"transformer'字段"扩展"Generator'类型。"
当然,我已经粗略地看过,但需要更仔细地阅读。你的实现如何处理打印(显示)函数?函数会缩小吗?你看到过(链接: http://dl.acm.org/citation.cfm?id=2364516 文本:Claessen 的函数显示和缩小)了吗?
是的。还没有做这个,但它会在我的清单上。鉴于函数在Clojure中是对象,我认为打印会比Haskell容易一些。