gpt4 book ai didi

f# - 大小值是否用于使用自定义生成器的 Gen 样本?

转载 作者:行者123 更新时间:2023-12-01 01:05:57 28 4
gpt4 key购买 nike

我正在使用 FsCheck 生成自定义数据的 Gen .

假设你有一个函数返回 Gen<'T> :

let chooseRectangle widthMax heightMax offset =
gen {
let! left = Gen.choose(0, widthMax-offset)
let! top = Gen.choose(0, heightMax-offset)
let! width = Gen.choose(offset, widthMax-left)
let! height = Gen.choose(offset, heightMax-top)
return { Left=left
Top=top
Width=width
Height=height
}
}

然后用于生成数据:
Gen.sample 0 10 (chooseRectangle 400 200 10)

size在这种情况下使用的参数(第一个)是否会影响值重新分配?

最佳答案

不,据我所知,在你的情况下不是。

第一个参数是大小。 sample将其线程化到您调用它的生成器中,但是生成器如何处理它取决于特定的实现。对于序列生成器,它可以例如控制序列的长度。

但是,您的生成器完全建立在 Gen.choose 之上, 明确忽略它:

let choose (l, h) = Gen (fun _ r -> range (l,h) r |> fst) 

其中 size 是 _争论。见 here .

关于f# - 大小值是否用于使用自定义生成器的 Gen 样本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35184446/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com