2024 Clojure状态调查中分享您的想法!

欢迎!有关本站如何运作的更多信息,请参阅关于页面。

0 投票
test.check

test.check 为一阶类型提供生成器,但不提供函数。

在原始QuickCheck中,一个额外的类型类("Arbitrary")处理
函数。

如果我实现这个并提交补丁,它很可能被包括吗?

背景:我在这里写了自己的Clojure QuickCheck克隆

https://bitbucket.org/sperber/deinprogramm.quickcheck

这有代数学和函数生成器,但没有test.check的所有优点。

我正在考虑是继续维护我的QuickCheck克隆还是
相反,向test.check贡献力量,所以任何反馈都将非常感谢。

5 个回答

0 投票

评论者:reiddraper

我很希望有这样一个补丁!你愿意先写一个快速实现建议吗,这样我们就可以在查看代码之前解决任何架构细节?

0 投票

评论者:sperber

你愿意用我的QuickCheck克隆作为起点吗?它的通用实现方法与你的非常相似,所以我认为你应该感到很自在。

但弊病是它引入了一个与生成器不同的类型——“任意”,对应于Haskell代码中的"Arbitray'类型类"。这样做会改变test.check的API,因此也许在那里,"Generator'类型应该通过可选的"transformer'字段进行扩展。

0 投票

评论者:reiddraper

当然,我已稍微阅读了一下内容,但还需要详细阅读。你的实现是如何处理函数的打印(显示)的?函数会缩小吗?你见过(链接:http://dl.acm.org/citation.cfm?id=2364516 文本:Claessen 的《显示和缩小函数》)吗?

0 投票

评论者:sperber

是的。尚未完成,但会列入我的计划之中。鉴于函数在Clojure中是对象,我想打印应该比Haskell中要简单。

0 投票
参考资料:https://clojure.atlassian.net/browse/TCHECK-38(由alex+import报告)
...