ScalaCheckジェネレータは、表現のためのScalaの中でシンタックスシュガーで作業:内部でScalaCheckジェネレータを使用する方法はありますか?
for(s1 <- Gen.choose(1, 10); s2 <- Gen.choose(10, 100)) yield (s1, s2)
私はScalaCheck式で表現するための「伝統的な」スカラを混在できるようにしたいと思います。たとえば:0 until 10
式はGen
のタイプではないので、
for(s0 <- 0 until 10; s1 <- Gen.choose(1, 10); s2 <- Gen.choose(10, 100)) yield (s0, s1, s2)
しかし、これは、コンパイルされません。
同じfor
ループ内でこれを達成するにはどうすればよいですか(一般にSeq
および/またはTraversable
の式)。
編集:答えのコンセンサスは、私が探している統語砂糖の種類は不可能であると思われます。
しかし、これは何らかの形式のステートフルなGenでは実行できないのでしょうか?特に、モナドを使ったのは?
ここで達成しようとしていることは明確ではありません。あなたが目指している表現の_タイプ_は何ですか? –
降伏した式の型がGen [(Int、Int、Int)]であるようにしたいのですが、 ]であるが、s0の値は0から10までの範囲に及ぶが、s1およびs2は毎回ランダムに選択される。 – NietzscheanAI
私は、この範囲からランダムに選択するのではなく、(1〜10)のすべての値が使用されていることを単に「確かめる」ことを望みます。私はそれを行う方法を知らない... –