问题标签 [haskell-hedgehog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
62 浏览

haskell - 如何为包装函数编写 Hedgehog 生成器?

我目前正在阅读Thinking with Types一书。在第三章Variance中,作者提供了一个练习,读者应该在练习中实现 functor 实例T1

我找到了几种方法来进行这种类型检查,例如

…和

当然,仅仅进行实例类型检查并不意味着实例遵守函子定律。为了尝试测试我编写的实例是否正确(从而表明上面编写的至少一个实例是错误的),我想编写一些基于属性的测试。

我想使用刺猬类库来编写我的测试。该库提供了我认为我需要的lawsCheck和功能。functorLaws我想我可以在 GHCi 中使用以下行测试我的实例

我缺少的是如何编写genT1,我想它会生成一个(或者可能是几个?实际上应该是genT1List?)随机T1值。我是否需要使用诸如hedgehog-fn之类的东西来生成任意函数,以便我可以制作一些随机(Int -> a)T1来包装?如果是这样,怎么做?