問題タブ [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に取り組んでいます。第 3 章のVarianceでは、著者は、読者が のファンクター インスタンスを実装する必要がある演習を提供しますT1

この型チェックを行ういくつかの方法を見つけまし

…と

もちろん、インスタンス型のチェックを行うだけでは、インスタンスがファンクターの法則を尊重するわけではありません。私が書いたインスタンスが正しいことをテストする (そして、上記のインスタンスの少なくとも 1 つが間違っていることを示す) ために、いくつかのプロパティ ベースのテストを書きたいと思います。

自分のテストを書くために、 hedgehog-classesライブラリを使用したいと考えています。このライブラリは、必要になると思われる機能lawsCheckと機能を提供します。functorLawsGHCi の次の行でインスタンスをテストできると思います

私が見逃しているのはgenT1、1つ(またはおそらく複数?実際にはそうあるべきgenT1Listですか?)のランダムT1値を生成すると想像する の書き方です。ラップするランダムな値を作成できるように、 hedgehog-fn のようなものを使用して任意の関数を生成する必要がありますか? もしそうなら、どのように?(Int -> a)T1